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_erreur">(#ENV*{message_erreur})</p>]
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok}|explode{@@}|table_valeur{0})</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> <form name="formulaire_#FORM" action="#ENV{action}" method="post"><div>
#ACTION_FORMULAIRE{#ENV{action}} #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 = []){ function formulaires_gamumail_charger_dist($slug, $destinataires = 0, $Tclient = [], $Tpdf = [], $redirect = '', $options = []){
var_dump($options);
$Tmails = []; $Tmails = [];
if (defined('_FORCER_ENVOI_SEPARE')) { 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{ function formulaires_gamumail_traiter_dist($slug, $destinataires = 0, $Tclient = [], $Tpdf = [], $redirect = '', $options = []) :Array{
$retour = []; $retour = [];
$retour['message_ok'] = '';
// blocage de l'envoi par appel du pseudo-slug no_gamumail // blocage de l'envoi par appel du pseudo-slug no_gamumail
if ($slug === 'no_gamumail') { if ($slug === 'no_gamumail') {
@ -291,6 +293,7 @@ function formulaires_gamumail_traiter_dist($slug, $destinataires = 0, $Tclient =
$envoi_separe = 'oui'; $envoi_separe = 'oui';
} }
if (empty($envoi_separe)) { if (empty($envoi_separe)) {
gamuSend($slug, $options, $destinataires, $Tclient, $Tpdf, $Tfiles, $redirect, $retour); gamuSend($slug, $options, $destinataires, $Tclient, $Tpdf, $Tfiles, $redirect, $retour);
} else { } else {
@ -311,12 +314,19 @@ function formulaires_gamumail_traiter_dist($slug, $destinataires = 0, $Tclient =
$retour['message_ok'] .= '@@gamumail_ok'; $retour['message_ok'] .= '@@gamumail_ok';
} }
} }
if ($redirect AND $redirect != '') { if ($redirect AND $redirect != '') {
$retour['redirect'] = $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 // debug
// $retour['redirect'] = "";
// fin debug // fin debug
return $retour; return $retour;
} }