feat(2 ajouts) :

* si redirect=fermer_modalbox si gamumail est ouvert dans une modalbox,
  le retour fermera simplement cette modal
* si en plus, on charge dans `options['ajaxReload] =  toto`, cela
  rechargera ce bloc
This commit is contained in:
Christophe 2025-06-24 16:39:08 +02:00
parent 29997ce439
commit dc57373f81
2 changed files with 21 additions and 2 deletions

View file

@ -31,6 +31,15 @@
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok}|explode{@@}|table_valeur{0})</p>]
[(#ENV*{message_ok}|explode{@@}|table_valeur{1}|=={fermer_modalbox}|oui)
<script>
jQuery(function($) {
$.modalboxclose();
[ajaxReload('(#ENV*{message_ok}|explode{@@}|table_valeur{2})')]
});
</script>
]
<form name="formulaire_#FORM" action="#ENV{action}" method="post"><div>
#ACTION_FORMULAIRE{#ENV{action}}

View file

@ -23,6 +23,7 @@ include_spip('inc/filtres');
*
*/
function formulaires_gamumail_charger_dist($slug, $destinataires = 0, $Tclient = [], $Tpdf = [], $redirect = '', $options = []){
var_dump($options);
$Tmails = [];
if (defined('_FORCER_ENVOI_SEPARE')) {
@ -247,6 +248,7 @@ function formulaires_gamumail_verifier_dist($slug, $destinataires = 0, $Tclient
function formulaires_gamumail_traiter_dist($slug, $destinataires = 0, $Tclient = [], $Tpdf = [], $redirect = '', $options = []) :Array{
$retour = [];
$retour['message_ok'] = '';
// blocage de l'envoi par appel du pseudo-slug no_gamumail
if ($slug === 'no_gamumail') {
@ -291,6 +293,7 @@ function formulaires_gamumail_traiter_dist($slug, $destinataires = 0, $Tclient =
$envoi_separe = 'oui';
}
if (empty($envoi_separe)) {
gamuSend($slug, $options, $destinataires, $Tclient, $Tpdf, $Tfiles, $redirect, $retour);
} else {
@ -311,12 +314,19 @@ function formulaires_gamumail_traiter_dist($slug, $destinataires = 0, $Tclient =
$retour['message_ok'] .= '@@gamumail_ok';
}
}
if ($redirect AND $redirect != '') {
if ($redirect AND $redirect != '') {
$retour['redirect'] = $redirect;
if ($redirect === 'fermer_modalbox') {
$retour['redirect'] = '';
$retour['message_ok'] = _T('gamumail:mail_envoye');
$retour['message_ok'] .= '@@fermer_modalbox';
if (!empty($options['ajaxReload'])) {
$retour['message_ok'] .= '@@' . $options['ajaxReload'];
}
}
}
// debug
// $retour['redirect'] = "";
// fin debug
return $retour;
}