[SPIP][PLUGINS] v3.0-->v3.2
[lhc/web/www.git] / www / plugins / menus_1 / formulaires / editer_menus_entree.php
index 474976c..d14edfa 100644 (file)
@@ -1,20 +1,22 @@
 <?php
 
 // Sécurité
-if (!defined("_ECRIRE_INC_VERSION")) return;
+if (!defined('_ECRIRE_INC_VERSION')) {
+       return;
+}
 
 include_spip('inc/menus');
 include_spip('inc/editer');
 include_spip('inc/actions');
 
-function formulaires_editer_menus_entree_charger($id_menu,$id_menus_entree='new'){
+function formulaires_editer_menus_entree_charger($id_menu, $id_menus_entree = 'new') {
        /**
         * On vérifie si nous ne sommes pas dans une modification
         * Sinon c'est une création
         */
        $id_menus_entree = intval(_request('modifier_entree')) ? _request('modifier_entree') : $id_menus_entree;
 
-       $valeurs = formulaires_editer_objet_charger('menus_entree',$id_menus_entree,0,0,'', '', '', '');
+       $valeurs = formulaires_editer_objet_charger('menus_entree', $id_menus_entree, 0, 0, '', '', array(), '');
 
        $valeurs['id_menu'] = $id_menu;
 
@@ -33,38 +35,48 @@ function formulaires_editer_menus_entree_charger($id_menu,$id_menus_entree='new'
        // On sait toujours si on est sur un menu déjà créé ou pas
        $valeurs['_hidden'] .= '<input type="hidden" name="id_menu" value="'.$id_menu.'" />';
 
+       // les valeurs retournées par _verifier
+       $valeurs['entrees'] = '';
+       $valeurs['donnees'] = '';
+       $valeurs['id_menus_entree'] = '';
+       $valeurs['type'] = '';
+       $valeurs['type_entree'] = '';
+       if ($type_entree = _request('type_entree')) {
+               $valeurs['infos_' . $type_entree] = '';
+       }
+
        return $valeurs;
 }
 
-function formulaires_editer_menus_entree_verifier($id_menu,$id_menus_entree='new'){
-       $erreurs = formulaires_editer_objet_verifier('menus_entree',$id_menus_entree,array());
+function formulaires_editer_menus_entree_verifier($id_menu, $id_menus_entree = 'new') {
+       $erreurs = formulaires_editer_objet_verifier('menus_entree', $id_menus_entree, array());
 
        // Si on demande une nouvelle entree pour un menu --------------------------
 
-       if ($id_menu = intval(_request('demander_nouvelle_entree'))){
+       if ($id_menu = intval(_request('demander_nouvelle_entree'))) {
                // S'il n'y a pas encore de type d'entree de choisi
-               if (!($type_entree = _request('type_entree'))){
+               if (!($type_entree = _request('type_entree'))) {
                        include_spip('inc/config');
-                       $erreurs['id_menu_nouvelle_entree'] = $id_menu;
+                       set_request('id_menu_nouvelle_entree', $id_menu);
                        // On charge les différents types d'entrées disponibles
                        $masque = array_flip(lire_config('menus/entrees_masquees', array()));
-                       $erreurs['entrees'] = array_diff_key(menus_lister_disponibles(), $masque);
-                       if (_request('suivant'))
-                               $erreurs['type'] = _T('menus:erreur_type_menu');
-               }
-               // Si on a choisi un type d'entree
-               else{
-                       $erreurs['id_menu_nouvelle_entree'] = $id_menu;
-                       $erreurs['type_entree'] = $type_entree;
+                       set_request('entrees', array_diff_key(menus_lister_disponibles(), $masque));
+                       if (_request('suivant')) {
+                               $erreur['type'] = _T('menus:erreur_type_menu');
+                       }
+               } else {
+                       // Si on a choisi un type d'entree
+                       set_request('id_menu_nouvelle_entree', $id_menu);
+                       set_request('type_entree', $type_entree);
                        // On charge les infos du type choisi
                        $entrees = menus_lister_disponibles();
-                       $erreurs['infos_'.$type_entree] = $entrees[$type_entree];
+                       set_request('infos_'.$type_entree, $entrees[$type_entree]);
                }
        }
 
        // Si on veut modifier une entrée ------------------------------------------
 
-       if ($id_menus_entree = intval(_request('modifier_entree'))){
+       if ($id_menus_entree = intval(_request('modifier_entree'))) {
                // On va chercher l'existant de cette entrée
                $entree = sql_fetsel(
                        'type_entree, parametres',
@@ -74,31 +86,34 @@ function formulaires_editer_menus_entree_verifier($id_menu,$id_menus_entree='new
                $type_entree = $entree['type_entree'];
                $parametres = unserialize($entree['parametres']);
 
-               $erreurs = array_merge($erreurs, $parametres);
-               $erreurs['id_menus_entree'] = $id_menus_entree;
-               $erreurs['type_entree'] = $type_entree;
+               set_request('donnees', $parametres);
+               set_request('id_menus_entree', $id_menus_entree);
+               set_request('type_entree', $type_entree);
                // On charge les infos du type choisi
                $entrees = menus_lister_disponibles();
-               $erreurs['infos_'.$type_entree] = $entrees[$type_entree];
+               set_request('infos_'.$type_entree, $entrees[$type_entree]);
        }
 
        // Si on valide une entree pour un menu ------------------------------------
 
-       if (($id_menu = intval(_request('id_menu_nouvelle_entree')) or $id_menus_entree = intval(_request('id_menus_entree'))) and _request('enregistrer')){
+       if (($id_menu = intval(_request('id_menu_nouvelle_entree'))
+               or $id_menus_entree = intval(_request('id_menus_entree'))) and _request('enregistrer')) {
                $type_entree = _request('type_entree');
                $parametres_envoyes = _request('parametres');
                $entrees = menus_lister_disponibles();
                $infos = $entrees[$type_entree];
                // On teste que chaque paramètre obligatoire est bien renseigné
-               foreach ($infos['parametres'] as $nom=>$parametre){
-                       if ($parametre['obligatoire']){
-                               if (!$parametres_envoyes[$nom]){
-                                       if ($id_menu)
-                                               $erreurs['id_menu_nouvelle_entree'] = $id_menu;
-                                       if ($id_menus_entree)
-                                               $erreurs['id_menus_entree'] = $id_menus_entree;
-                                       $erreurs['type_entree'] = $type_entree;
-                                       $erreurs['infos_'.$type_entree] = $infos;
+               foreach ($infos['parametres'] as $nom => $parametre) {
+                       if ($parametre['obligatoire']) {
+                               if (!$parametres_envoyes[$nom]) {
+                                       if ($id_menu) {
+                                               set_request('id_menu_nouvelle_entree', $id_menu);
+                                       }
+                                       if ($id_menus_entree) {
+                                               set_request('id_menus_entree', $id_menus_entree);
+                                       }
+                                       set_request('type_entree', $type_entree);
+                                       set_request('infos_'.$type_entree, $infos);
                                        $erreurs['parametres'][$nom] = _T('info_obligatoire');
                                }
                        }
@@ -108,28 +123,34 @@ function formulaires_editer_menus_entree_verifier($id_menu,$id_menus_entree='new
        return $erreurs;
 }
 
-function formulaires_editer_menus_entree_traiter($id_menu,$id_menus_entree='new'){
+function formulaires_editer_menus_entree_traiter($id_menu, $id_menus_entree = 'new') {
        $retours = array();
 
        // Si on valide une entree pour un menu ------------------------------------
 
-       if (($id_menu = intval(_request('id_menu_nouvelle_entree')) or $id_menus_entree = intval(_request('id_menus_entree'))) and _request('enregistrer')){
-               $res = formulaires_editer_objet_traiter('menus_entree', $id_menus_entree, 0, 0, '', '', '', '');
-               if (!$res['id_menus_entree'])
+       if (($id_menu = intval(_request('id_menu_nouvelle_entree'))
+                       or $id_menus_entree = intval(_request('id_menus_entree')))
+               and _request('enregistrer')) {
+               $res = formulaires_editer_objet_traiter('menus_entree', $id_menus_entree, 0, 0, '', '', array(), '');
+               set_request('id_menu_nouvelle_entree', '');
+               set_request('id_menus_entree', '');
+               if (!$res['id_menus_entree']) {
                        $retours['message_erreur'] = _T('menus:erreur_mise_a_jour');
+               }
        }
 
        // Si on demande la supression d'une entrée --------------------------------
 
-       if ($id_menus_entree = intval(_request('supprimer_entree'))){
+       if ($id_menus_entree = intval(_request('supprimer_entree'))) {
                $ok = menus_supprimer_entree($id_menus_entree);
-               if (!$ok)
+               if (!$ok) {
                        $retours['message_erreur'] = _T('menus:erreur_mise_a_jour');
+               }
        }
 
        // Si on demande à déplacer une entrée -------------------------------------
 
-       if ($params = _request('deplacer_entree')){
+       if ($params = _request('deplacer_entree')) {
                preg_match('/^([\d]+)-(bas|haut)$/', $params, $params);
                array_shift($params);
                list($id_menus_entree, $sens) = $params;
@@ -155,7 +176,8 @@ function formulaires_editer_menus_entree_traiter($id_menu,$id_menus_entree='new'
                ));
 
                // Tant qu'on ne veut pas faire de tour complet
-               if (!($sens == 'bas' and $rang_actuel == $dernier_rang) and !($sens == 'haut' and $rang_actuel == 1)){
+               if (!($sens == 'bas' and $rang_actuel == $dernier_rang)
+                       and !($sens == 'haut' and $rang_actuel == 1)) {
                        // Alors on ne fait qu'échanger deux entrées
                        $rang_echange = ($sens == 'bas') ? ($rang_actuel + 1) : ($rang_actuel - 1);
                        $ok = sql_updateq(
@@ -165,7 +187,7 @@ function formulaires_editer_menus_entree_traiter($id_menu,$id_menus_entree='new'
                                ),
                                'id_menu = '.$id_menu.' and rang = '.$rang_echange
                        );
-                       if ($ok)
+                       if ($ok) {
                                $ok = sql_updateq(
                                        'spip_menus_entrees',
                                        array(
@@ -173,10 +195,10 @@ function formulaires_editer_menus_entree_traiter($id_menu,$id_menus_entree='new'
                                        ),
                                        'id_menus_entree = '.$id_menus_entree
                                );
-               }
-               // Sinon on fait un tour complet en déplaçant tout
-               else{
-                       if ($sens == 'bas'){
+                       }
+               } else {
+                       // Sinon on fait un tour complet en déplaçant tout
+                       if ($sens == 'bas') {
                                // Tout le monde descend d'un rang
                                $ok = sql_update(
                                        'spip_menus_entrees',
@@ -186,7 +208,7 @@ function formulaires_editer_menus_entree_traiter($id_menu,$id_menus_entree='new'
                                        'id_menu = '.$id_menu
                                );
                                // L'entrée passe tout en haut
-                               if ($ok)
+                               if ($ok) {
                                        $ok = sql_updateq(
                                                'spip_menus_entrees',
                                                array(
@@ -194,8 +216,8 @@ function formulaires_editer_menus_entree_traiter($id_menu,$id_menus_entree='new'
                                                ),
                                                'id_menus_entree = '.$id_menus_entree
                                        );
-                       }
-                       else{
+                               }
+                       } else {
                                // Tout le monde monte d'un rang
                                $ok = sql_update(
                                        'spip_menus_entrees',
@@ -205,7 +227,7 @@ function formulaires_editer_menus_entree_traiter($id_menu,$id_menus_entree='new'
                                        'id_menu = '.$id_menu
                                );
                                // L'entrée passe tout en bas
-                               if ($ok)
+                               if ($ok) {
                                        $ok = sql_updateq(
                                                'spip_menus_entrees',
                                                array(
@@ -213,26 +235,31 @@ function formulaires_editer_menus_entree_traiter($id_menu,$id_menus_entree='new'
                                                ),
                                                'id_menus_entree = '.$id_menus_entree
                                        );
+                               }
                        }
                }
-               if (!$ok) $retours['message_erreur'] = _T('menus:erreur_mise_a_jour');
+               if (!$ok) {
+                       $retours['message_erreur'] = _T('menus:erreur_mise_a_jour');
+               }
        }
 
        // Si on veut faire un sous-menu -------------------------------------------
 
-       if ($id_menus_entree = intval(_request('demander_sous_menu'))){
+       if ($id_menus_entree = intval(_request('demander_sous_menu'))) {
                $id_menu = sql_insertq(
                        'spip_menus',
                        array(
                                'id_menus_entree' => $id_menus_entree
                        )
                );
-               if (!$id_menu) $retours['message_erreur'] = _T('menus:erreur_mise_a_jour');
+               if (!$id_menu) {
+                       $retours['message_erreur'] = _T('menus:erreur_mise_a_jour');
+               }
        }
 
        // Si on veut supprimer un menu --------------------------------------------
 
-       if ($id_menu = intval(_request('supprimer_menu'))){
+       if ($id_menu = intval(_request('supprimer_menu'))) {
                // Est-ce un menu ou un sous-menu ?
                $sous_menu = intval(sql_getfetsel(
                        'id_menus_entree',
@@ -240,13 +267,21 @@ function formulaires_editer_menus_entree_traiter($id_menu,$id_menus_entree='new'
                        'id_menu = '.$id_menu
                ));
                $ok = menus_supprimer_menu($id_menu);
-               if (!$ok) $retours['message_erreur'] = _T('menus:erreur_mise_a_jour');
-               if ($ok and !$sous_menu) $retours['redirect'] = generer_url_ecrire('menus_tous');
+               if (!$ok) {
+                       $retours['message_erreur'] = _T('menus:erreur_mise_a_jour');
+               }
+               if ($ok and !$sous_menu) {
+                       $retours['redirect'] = generer_url_ecrire('menus_tous');
+               }
+       }
+
+       // Bouton annuler ---------------------------------------------------------
+
+       if (_request('annuler')) {
+               set_request('id_menus_entree', '');
        }
 
        $retours['editable'] = true;
 
        return $retours;
 }
-
-?>