From e44c854b7a0356d6b4a86e7d30545d0f706f7936 Mon Sep 17 00:00:00 2001 From: cy_altern Date: Thu, 5 Sep 2024 18:56:47 +0200 Subject: [PATCH] =?UTF-8?q?Feat=20:=20ajout=20d'un=20param=C3=A8tre=20ajax?= =?UTF-8?q?Callback=20qui=20permet=20d'indiquer=20une=20fonction=20JS=20ap?= =?UTF-8?q?pell=C3=A9e=20en=20callback=20de=20l'ajaxReload=20=C3=A0=20la?= =?UTF-8?q?=20fin=20du=20traiter.=20Le=20retour[message=5Fok]=20du=20trait?= =?UTF-8?q?er=20est=20maintenant=20un=20array=20encod=C3=A9=20en=20JSon?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + formulaires/bigform.html | 35 +++++++++++++++++++++++++++++------ formulaires/bigform.php | 9 +++++++-- inc/bigform_traiter.php | 3 ++- 4 files changed, 39 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 1330377..bfa4953 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,7 @@ - `proteger` - `charger_js_titre` oui par defaut => permet de ne pas charger le js d'ajout de l'input titre - `ajaxReload` le nom d'un bloc ajax à recharger via ajaxReload. dans ce cas, charger_js_titre = non + - `ajaxCallback` le nom d'une fonction JS qui sera appellée en callback de l'ajaxReload (/!\ le JS de cette fonction doit être dans le bloc rechargé) - `boutonSubmit` non par défaut (= bouton masqué) => oui permet d'afficher le bouton submit du FORMULAIRE_BIGFORM - `id_document` l'ID du document pour lequel le fichier chargé va remplacer le fichier existant diff --git a/formulaires/bigform.html b/formulaires/bigform.html index a2fa74c..34d8de8 100644 --- a/formulaires/bigform.html +++ b/formulaires/bigform.html @@ -1,13 +1,36 @@ [(#ENV{objet_ok}|oui)
+ [

(#ENV*{message_erreur})

] - [

(#ENV*{message_erreur})

] - [(#ENV*{message_ok}|oui) - - ] + [(#ENV*{message_ok}|oui) + + ]
#ACTION_FORMULAIRE{#ENV{action}} diff --git a/formulaires/bigform.php b/formulaires/bigform.php index bb5efeb..59c3d87 100644 --- a/formulaires/bigform.php +++ b/formulaires/bigform.php @@ -52,7 +52,6 @@ function formulaires_bigform_verifier_dist($objet, $id_objet, $mode = 'auto', $a } function formulaires_bigform_traiter_dist($objet = 'article', $id_objet = 0, $mode = 'auto', $args = []) { - $options = []; if (array_key_exists('proteger', $args)) { $options['proteger'] = true; @@ -82,7 +81,13 @@ function formulaires_bigform_traiter_dist($objet = 'article', $id_objet = 0, $mo $retour['redirect'] = $args['redirect']; } if (!empty($args['ajaxReload'])) { - $retour['message_ok'] = $args['ajaxReload']; + //$retour['message_ok'] = $args['ajaxReload']; + + $Tretour = ['bloc_ajax' => $args['ajaxReload']]; + if (!empty($args['ajaxCallback'])) { + $Tretour['callback_ajax'] = $args['ajaxCallback']; + } + $retour['message_ok'] = json_encode($Tretour); } return $retour; } diff --git a/inc/bigform_traiter.php b/inc/bigform_traiter.php index 3657496..facf8c0 100644 --- a/inc/bigform_traiter.php +++ b/inc/bigform_traiter.php @@ -87,8 +87,10 @@ function inc_bigform_traiter_dist($id_objet, $objet = 'article', $mode = 'auto', autoriser_exception('associerdocuments', $type, $id_objet); $autorisation_temp = true; } + $ajouter_document = charger_fonction('ajouter_documents', 'action'); $Tid_doc = $ajouter_document($id_document, $files, $objet, $id_objet, $mode); + if ($autorisation_temp) { autoriser_exception('associerdocuments', $type, $id_objet, false); } @@ -106,7 +108,6 @@ function inc_bigform_traiter_dist($id_objet, $objet = 'article', $mode = 'auto', include_spip('inc/bigform_obfusquer_doc'); bigform_obfusquer_doc($Tid_doc); } - } // si tout s'est bien passé, on supprime le/les anciens logos