Bonjour à tous,
J’ai créé un nouveau module car j’ai besoin d’exécuter du code à la création d’un tiers, donc lorsque sur thirdpartycard $action == ‹ add ›.
Seulement, j’ai l’impression que $action est toujours différent de add sauf lorsqu’il y a une erreur dans le formulaire.
Le code que je vous mets ci-dessous fonctionne très bien et m’affiche : « create », « view » ou « edit », je n’ai réussi à avoir le « add » qu’en produisant une erreur dans le formulaire.
Ma question est la suivante, comment exécuter mon code après la validation du formulaire pour en récupérer les données ?
'hooks' => array(
'thirdpartycard'
// 'data' => array(
// 'hookcontext1',
// 'hookcontext2',
// ),
// 'entity' => '0',
),
public function doActions($parameters, &$object, &$action, $hookmanager){
print '<script>alert("'.$action.'")</script>';
}
EDIT :
En commentant les headers comme ci-dessous ça fonctionne, mais ça ne m’arrange pas
Comment exécuter mon code puis rediriger ?
if (!empty($backtopage)) {
$backtopage = preg_replace('/--IDFORBACKTOPAGE--/', $object->id, $backtopage); // New method to autoselect project after a New on another form object creation
if (preg_match('/\?/', $backtopage)) {
$backtopage .= '&socid='.$object->id; // Old method
}
//header("Location: ".$backtopage);
exit;
} else {
$url = $_SERVER["PHP_SELF"]."?socid=".$object->id; // Old method
if (($object->client == 1 || $object->client == 3) && !getDolGlobalString('SOCIETE_DISABLE_CUSTOMERS')) {
$url = DOL_URL_ROOT."/comm/card.php?socid=".$object->id;
} elseif ($object->fournisseur == 1) {
$url = DOL_URL_ROOT."/fourn/card.php?socid=".$object->id;
}
//header("Location: ".$url);
exit;
}
Par avance merci