Skip to content
Extraits de code Groupes Projets
Valider e3f3b471 rédigé par nicod's avatar nicod
Parcourir les fichiers

Ajout et modification en popin, gérer aussi le cas où on n'est pas en popin...

Ajout et modification en popin, gérer aussi le cas où on n'est pas en popin (js désactivé ou édition directe)
parent dc476fb6
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -16,8 +16,8 @@ ...@@ -16,8 +16,8 @@
] ]
[(#ENV{id_blocs_type}|oui) [(#ENV{id_blocs_type}|oui)
<p class="boutons boutons-flex"> <p class="boutons boutons-flex">
<button type="submit" class="submit btn_secondaire" name="annuler" value="1" formnovalidate><:bouton_annuler:></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" name="ajouter" value="1"><:bloc:bouton_ajouter:></button> <button type="submit" class="submit btn" name="ajouter" value="1">[(#ENV{popin}|?{<:bloc:bouton_ajouter:>,<:bouton_enregistrer:/>})]</button>
</p> </p>
] ]
</p> </p>
......
...@@ -20,13 +20,14 @@ include_spip('inc/editer'); ...@@ -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é * 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 int|string $id_bloc Identifiant du bloc. 'new' pour un nouveau bloc.
* @param null $objet Type d'objet à associer (article, rubrique,...) * @param string|null $objet Type d'objet à associer (article, rubrique,...)
* @param null $id_objet Id de l'objet à associer * @param int|null $id_objet Id de l'objet à associer
* @param null $retour URL de redirection après le traitement * @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 * @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]); return serialize([intval($id_bloc), $objet, $id_objet]);
} }
...@@ -35,24 +36,29 @@ function formulaires_editer_bloc_identifier_dist($id_bloc = 'new', $objet = null ...@@ -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 * 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 int|string $id_bloc Identifiant du bloc. 'new' pour un nouveau bloc.
* @param null $objet Type d'objet à associer (article, rubrique,...) * @param string|null $objet Type d'objet à associer (article, rubrique,...)
* @param null $id_objet Id de l'objet à associer * @param int|null $id_objet Id de l'objet à associer
* @param null $retour URL de redirection après le traitement * @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 * @return array Environnement du formulaire
* @uses formulaires_editer_objet_charger() * @uses formulaires_editer_objet_charger()
*/ */
function formulaires_editer_bloc_charger_dist($id_bloc = 'new', $objet = null, $id_objet = null, $retour = null) { function formulaires_editer_bloc_charger_dist($id_bloc = 'new', $objet = null, $id_objet = null, $retour = null, $popin = null) {
if (!$objet || !(int)$id_objet) {
return null;
}
if ((int)$id_bloc) { if ((int)$id_bloc) {
$id_blocs_type = (int)sql_getfetsel('id_blocs_type', 'spip_blocs', 'id_bloc = ' . $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, ''); $valeurs = formulaires_editer_objet_charger('bloc', $id_bloc, $id_blocs_type, 0, $retour, '');
} else { } else {
$id_blocs_type = _request('id_blocs_type'); $id_blocs_type = _request('id_blocs_type');
} }
if (!$objet || !(int)$id_objet) {
return null;
}
$valeurs['popin'] = (bool)$popin;
if ($id_blocs_type) { if ($id_blocs_type) {
// charger les saisies du type de bloc // charger les saisies du type de bloc
...@@ -107,14 +113,15 @@ function formulaires_editer_bloc_charger_dist($id_bloc = 'new', $objet = null, $ ...@@ -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 * 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 int|string $id_bloc Identifiant du bloc. 'new' pour un nouveau bloc.
* @param string $retour URL de redirection après le traitement * @param string|null $objet Type d'objet à associer (article, rubrique,...)
* @param null $objet Type d'objet à associer (article, rubrique,...) * @param int|null $id_objet Id de l'objet à associer
* @param 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 * @return array Tableau des erreurs
* @uses formulaires_editer_objet_verifier() * @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) { if ((int)$id_bloc) {
$id_blocs_type = (int)sql_getfetsel('id_blocs_type', 'spip_blocs', 'id_bloc = ' . $id_bloc); $id_blocs_type = (int)sql_getfetsel('id_blocs_type', 'spip_blocs', 'id_bloc = ' . $id_bloc);
} else { } else {
...@@ -147,17 +154,20 @@ function formulaires_editer_bloc_verifier_dist($id_bloc = 'new', $objet = null, ...@@ -147,17 +154,20 @@ function formulaires_editer_bloc_verifier_dist($id_bloc = 'new', $objet = null,
* *
* Traiter les champs postés * Traiter les champs postés
* *
* @param int|string $id_bloc Identifiant du bloc. 'new' pour un nouveau bloc. * @param int|string $id_bloc Identifiant du bloc. 'new' pour un nouveau bloc.
* @param int|string $id_blocs_type Type de bloc * @param string|null $objet Type d'objet à associer (article, rubrique,...)
* @param string $retour URL de redirection après le traitement * @param int|null $id_objet Id de l'objet à associer
* @param null $objet Type d'objet à associer (article, rubrique,...) * @param string|null $retour URL de redirection après le traitement
* @param null $id_objet Id de l'objet à associer * @param string|null $popin Indique si le formulaire est ouvert en popin
* @return array Retours des traitements * @return array Retours des traitements
* @uses formulaires_editer_objet_traiter() * @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) { if ((int)$id_bloc) {
$id_blocs_type = (int)sql_getfetsel('id_blocs_type', 'spip_blocs', 'id_bloc = ' . $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 { } else {
$id_blocs_type = _request('id_blocs_type'); $id_blocs_type = _request('id_blocs_type');
} }
......
...@@ -30,8 +30,8 @@ ...@@ -30,8 +30,8 @@
#SET{redirect,#URL_ECRIRE{#OBJET|objet_info{url_voir},#OBJET|id_table_objet|concat{'=',#ID_OBJET}}} #SET{redirect,#URL_ECRIRE{#OBJET|objet_info{url_voir},#OBJET|id_table_objet|concat{'=',#ID_OBJET}}}
<div class="ajax"> <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) [(#ENV{popin,''}|oui)
</div> </div>
......
...@@ -19,9 +19,11 @@ ...@@ -19,9 +19,11 @@
#GENERER_BLOCK #GENERER_BLOCK
[(#AUTORISER{modifier,bloc,#ID_BLOC}) [(#AUTORISER{modifier,bloc,#ID_BLOC})
<div class="deplacer-modifier"> <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})]"
[(#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})] class="btn btn_mini popin">
</div> <span class="sp-icone sp-icone-bloc" aria-hidden="true">[(#CHEMIN_IMAGE{bloc-16.png}|balise_img)]</span>
<:bloc:icone_modifier_bloc:/>
</a>
] ]
</div> </div>
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter