diff --git a/README.md b/README.md index 8b684fc..1133e32 100644 --- a/README.md +++ b/README.md @@ -99,70 +99,20 @@ function prefixPlugin_post_edition($flux){ } ``` -5. Pour utiliser une **mediabox** ou **modalbox** et rechargement total/partiel de la page: on peut demander à vuejs de recharger tout le json ou simplement une ligne dans le cas d'une modification +1. Pour utiliser une **mediabox** ou **modalbox** et rechargement total/partiel de la page: on peut demander à vuejs de recharger tout le json ou simplement une ligne dans le cas d'une modification 1. Dans le json : ajouter un lien avec la classe mediabox ou modalbox (cf ex de json) ```html "modif" : [(#VAL{}|json_encode)], ``` - 2. on charge en ajax le formulaire en l'englobant d'une div avec la classe ajax (du pur spip) dans ce cas, à la validation du form, si pas de `redirect` spécifié alors, retour dans le formualaire, avec le message `$retour['message_ok']` qui s'affiche. - Détournement de SPIP: dans le message_ok, on fais passer l'id de la cle primaire qui va declencher le rechargement du json QUE pour cette ligne et ca c'est vuejs qui s'en occupe ici (html du formulaire): - ```html - [(#ENV**{message_ok}|=={gamutable}|oui) - - ] - ``` - 3. Dans le traiter du formulaire => supprimer la redirection et ajouter : + 2. On charge en ajax le formulaire en l'englobant d'une div avec la classe ajax (du pur spip) + 3. Dans le traiter du formulaire => supprimer la redirection et on ajoute : ```php if ($retour === 'gamutable') { $res['redirect'] = ""; - $res['message_ok'] = "gamutable"; + // pour recharger que la ligne $id_patate du tableau + $res['message_ok'] = gamutable_fermer_modalbox($id_patate); + // ou si on veut recharger tout le tableau + $res['message_ok'] = gamutable_fermer_modalbox(); } ``` - 4. Dans le html du formulaire, ajouter : - ```html - [(#ENV**{message_ok}|=={gamutable}|oui) - - ] - ``` *il faut ajouter data-confirm="Confirmez vous ..." si on veut ajouter une popin de confirmation* - - 5. Un exemple plus concret: - - le HTML du formulaire: - ```html - [(#ENV**{message_ok}|oui) - - ] - ``` - - le traiter du PHP: - ```php - if ($redirect === "gamutable") { - $retour['redirect'] = ""; - $retour['message_ok'] = "$id_auteur"; - } elseif ($redirect === 'all'){ - // on recharge dans gamuTable tout le tableau car il peut y avoir plusieurs lignes avec le meme souscripteur - $retour['redirect'] = ""; - $retour['message_ok'] = "9999999999"; - }else { - $retour['redirect'] = $redirect; - } - ``` - - diff --git a/gamutable_fonctions.php b/gamutable_fonctions.php index 537351e..9cd6a20 100644 --- a/gamutable_fonctions.php +++ b/gamutable_fonctions.php @@ -12,3 +12,22 @@ if (!defined('_ECRIRE_INC_VERSION')) { return; } + +function gamutable_fermer_modalbox($id_objet = 9999999999){ + $html = << + id = "$id_objet"; + id = parseInt(id); + if (id > 0 && id < 9999999999) { + app.rechargerJson(id); + $.modalboxclose(); + } + if (id === 9999999999) { + app.rechargerJson(); + $.modalboxclose(); + } + delete id; + +EOJS; + return $html; +} diff --git a/inclure/redirect_form.html b/inclure/redirect_form.html new file mode 100644 index 0000000..db0c3f8 --- /dev/null +++ b/inclure/redirect_form.html @@ -0,0 +1,17 @@ +#CACHE{0} + +[(#ENV**{message_ok}|oui) + +]