From e3f3b471b12ba7267b575d13cafea771fa963f8c Mon Sep 17 00:00:00 2001 From: nicod_ <nicod@lerebooteux.fr> Date: Sun, 16 Apr 2023 21:15:37 +0200 Subject: [PATCH] =?UTF-8?q?Ajout=20et=20modification=20en=20popin,=20g?= =?UTF-8?q?=C3=A9rer=20aussi=20le=20cas=20o=C3=B9=20on=20n'est=20pas=20en?= =?UTF-8?q?=20popin=20(js=20d=C3=A9sactiv=C3=A9=20ou=20=C3=A9dition=20dire?= =?UTF-8?q?cte)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- formulaires/editer_bloc.html | 4 +- formulaires/editer_bloc.php | 62 +++++++++++++---------- prive/squelettes/contenu/bloc_edit.html | 4 +- prive/squelettes/inclure/blocs_objet.html | 8 +-- 4 files changed, 45 insertions(+), 33 deletions(-) diff --git a/formulaires/editer_bloc.html b/formulaires/editer_bloc.html index 94b498e..b48112d 100644 --- a/formulaires/editer_bloc.html +++ b/formulaires/editer_bloc.html @@ -16,8 +16,8 @@ ] [(#ENV{id_blocs_type}|oui) <p class="boutons boutons-flex"> - <button type="submit" class="submit btn_secondaire" name="annuler" value="1" formnovalidate><:bouton_annuler:></button> - <button type="submit" class="submit" name="ajouter" value="1"><:bloc:bouton_ajouter:></button> + [(#ENV{popin}|oui)<a href="#" onclick="lity.current().close(); return false;" class="submit btn btn_secondaire"><:bouton_annuler:></a>] + <button type="submit" class="submit btn" name="ajouter" value="1">[(#ENV{popin}|?{<:bloc:bouton_ajouter:>,<:bouton_enregistrer:/>})]</button> </p> ] </p> diff --git a/formulaires/editer_bloc.php b/formulaires/editer_bloc.php index b6e9f94..1df9d02 100644 --- a/formulaires/editer_bloc.php +++ b/formulaires/editer_bloc.php @@ -20,13 +20,14 @@ include_spip('inc/editer'); /** * Identifier le formulaire en faisant abstraction des paramètres qui ne représentent pas l'objet edité * - * @param int|string $id_bloc Identifiant du bloc. 'new' pour un nouveau bloc. - * @param null $objet Type d'objet à associer (article, rubrique,...) - * @param null $id_objet Id de l'objet à associer - * @param null $retour URL de redirection après le traitement + * @param int|string $id_bloc Identifiant du bloc. 'new' pour un nouveau bloc. + * @param string|null $objet Type d'objet à associer (article, rubrique,...) + * @param int|null $id_objet Id de l'objet à associer + * @param string|null $retour URL de redirection après le traitement + * @param string|null $popin Indique si le formulaire est ouvert en popin * @return string Hash du formulaire */ -function formulaires_editer_bloc_identifier_dist($id_bloc = 'new', $objet = null, $id_objet = null, $retour = null) { +function formulaires_editer_bloc_identifier_dist($id_bloc = 'new', $objet = null, $id_objet = null, $retour = null, $popin = null) { return serialize([intval($id_bloc), $objet, $id_objet]); } @@ -35,24 +36,29 @@ function formulaires_editer_bloc_identifier_dist($id_bloc = 'new', $objet = null * * Déclarer les champs postés et y intégrer les valeurs par défaut * - * @param int|string $id_bloc Identifiant du bloc. 'new' pour un nouveau bloc. - * @param null $objet Type d'objet à associer (article, rubrique,...) - * @param null $id_objet Id de l'objet à associer - * @param null $retour URL de redirection après le traitement + * @param int|string $id_bloc Identifiant du bloc. 'new' pour un nouveau bloc. + * @param string|null $objet Type d'objet à associer (article, rubrique,...) + * @param int|null $id_objet Id de l'objet à associer + * @param string|null $retour URL de redirection après le traitement + * @param string|null $popin Indique si le formulaire est ouvert en popin * @return array Environnement du formulaire * @uses formulaires_editer_objet_charger() */ -function formulaires_editer_bloc_charger_dist($id_bloc = 'new', $objet = null, $id_objet = null, $retour = null) { - if (!$objet || !(int)$id_objet) { - return null; - } - +function formulaires_editer_bloc_charger_dist($id_bloc = 'new', $objet = null, $id_objet = null, $retour = null, $popin = null) { if ((int)$id_bloc) { $id_blocs_type = (int)sql_getfetsel('id_blocs_type', 'spip_blocs', 'id_bloc = ' . $id_bloc); + $infos = sql_fetsel('id_objet, objet', 'spip_blocs_liens', 'id_bloc = ' . $id_bloc); + $objet = $infos['objet']; + $id_objet = $infos['id_objet']; $valeurs = formulaires_editer_objet_charger('bloc', $id_bloc, $id_blocs_type, 0, $retour, ''); } else { $id_blocs_type = _request('id_blocs_type'); } + if (!$objet || !(int)$id_objet) { + return null; + } + + $valeurs['popin'] = (bool)$popin; if ($id_blocs_type) { // charger les saisies du type de bloc @@ -107,14 +113,15 @@ function formulaires_editer_bloc_charger_dist($id_bloc = 'new', $objet = null, $ * * Vérifier les champs postés et signaler d'éventuelles erreurs * - * @param int|string $id_bloc Identifiant du bloc. 'new' pour un nouveau bloc. - * @param string $retour URL de redirection après le traitement - * @param null $objet Type d'objet à associer (article, rubrique,...) - * @param null $id_objet Id de l'objet à associer + * @param int|string $id_bloc Identifiant du bloc. 'new' pour un nouveau bloc. + * @param string|null $objet Type d'objet à associer (article, rubrique,...) + * @param int|null $id_objet Id de l'objet à associer + * @param string|null $retour URL de redirection après le traitement + * @param string|null $popin Indique si le formulaire est ouvert en popin * @return array Tableau des erreurs * @uses formulaires_editer_objet_verifier() */ -function formulaires_editer_bloc_verifier_dist($id_bloc = 'new', $objet = null, $id_objet = null, $retour = null) { +function formulaires_editer_bloc_verifier_dist($id_bloc = 'new', $objet = null, $id_objet = null, $retour = null, $popin = null) { if ((int)$id_bloc) { $id_blocs_type = (int)sql_getfetsel('id_blocs_type', 'spip_blocs', 'id_bloc = ' . $id_bloc); } else { @@ -147,17 +154,20 @@ function formulaires_editer_bloc_verifier_dist($id_bloc = 'new', $objet = null, * * Traiter les champs postés * - * @param int|string $id_bloc Identifiant du bloc. 'new' pour un nouveau bloc. - * @param int|string $id_blocs_type Type de bloc - * @param string $retour URL de redirection après le traitement - * @param null $objet Type d'objet à associer (article, rubrique,...) - * @param null $id_objet Id de l'objet à associer - * @return array Retours des traitements + * @param int|string $id_bloc Identifiant du bloc. 'new' pour un nouveau bloc. + * @param string|null $objet Type d'objet à associer (article, rubrique,...) + * @param int|null $id_objet Id de l'objet à associer + * @param string|null $retour URL de redirection après le traitement + * @param string|null $popin Indique si le formulaire est ouvert en popin + * @return array Retours des traitements * @uses formulaires_editer_objet_traiter() */ -function formulaires_editer_bloc_traiter_dist($id_bloc = 'new', $objet = null, $id_objet = null, $retour = null) { +function formulaires_editer_bloc_traiter_dist($id_bloc = 'new', $objet = null, $id_objet = null, $retour = null, $popin = null) { if ((int)$id_bloc) { $id_blocs_type = (int)sql_getfetsel('id_blocs_type', 'spip_blocs', 'id_bloc = ' . $id_bloc); + $infos = sql_fetsel('id_objet, objet', 'spip_blocs_liens', 'id_bloc = ' . $id_bloc); + $objet = $infos['objet']; + $id_objet = $infos['id_objet']; } else { $id_blocs_type = _request('id_blocs_type'); } diff --git a/prive/squelettes/contenu/bloc_edit.html b/prive/squelettes/contenu/bloc_edit.html index 390934d..a085a40 100644 --- a/prive/squelettes/contenu/bloc_edit.html +++ b/prive/squelettes/contenu/bloc_edit.html @@ -30,8 +30,8 @@ #SET{redirect,#URL_ECRIRE{#OBJET|objet_info{url_voir},#OBJET|id_table_objet|concat{'=',#ID_OBJET}}} <div class="ajax"> ] -[(#GET{redirect}|dd)] -[(#FORMULAIRE_EDITER_BLOC{#ENV{id_bloc,new}, #OBJET, #ID_OBJET, #GET{redirect}})] + +[(#FORMULAIRE_EDITER_BLOC{#ENV{id_bloc,new}, #OBJET, #ID_OBJET, #GET{redirect}, #ENV{popin}})] [(#ENV{popin,''}|oui) </div> diff --git a/prive/squelettes/inclure/blocs_objet.html b/prive/squelettes/inclure/blocs_objet.html index b0d4b46..056da0f 100644 --- a/prive/squelettes/inclure/blocs_objet.html +++ b/prive/squelettes/inclure/blocs_objet.html @@ -19,9 +19,11 @@ #GENERER_BLOCK [(#AUTORISER{modifier,bloc,#ID_BLOC}) - <div class="deplacer-modifier"> - [(#URL_ECRIRE{#VAL{bloc}|objet_info{url_edit},id_bloc=#ID_BLOC}|parametre_url{redirect,#SELF}|concat{'#bloc',#ID_BLOC}|icone_verticale{<:bloc:icone_modifier_bloc:/>,bloc,edit,right})] - </div> + <a href="[(#URL_ECRIRE{bloc_edit,id_bloc=#ID_BLOC}|parametre_url{popin,1}|parametre_url{var_zajax,contenu}|parametre_url{id_bloc,#ID_BLOC}|parametre_url{id_objet,#ID_OBJET}|parametre_url{objet,#OBJET})]" + class="btn btn_mini popin"> + <span class="sp-icone sp-icone-bloc" aria-hidden="true">[(#CHEMIN_IMAGE{bloc-16.png}|balise_img)]</span> + <:bloc:icone_modifier_bloc:/> + </a> ] </div> -- GitLab