[SPIP][PLUGINS] v3.0-->v3.2
[lhc/web/www.git] / www / plugins / saisies / inc / saisies_manipuler.php
index 0894e06..3449926 100644 (file)
@@ -24,6 +24,12 @@ if (!defined('_ECRIRE_INC_VERSION')) {
  *               Tableau modifié décrivant les saisies
  */
 function saisies_supprimer($saisies, $id_ou_nom_ou_chemin) {
+       // On enlève les options générales avant de manipuler
+       if (isset($saisies['options'])) {
+               $options_generales = $saisies['options'];
+               unset($saisies['options']);
+       }
+       
        // Si la saisie n'existe pas, on ne fait rien
        if ($chemin = saisies_chercher($saisies, $id_ou_nom_ou_chemin, true)) {
                // La position finale de la saisie
@@ -39,6 +45,11 @@ function saisies_supprimer($saisies, $id_ou_nom_ou_chemin) {
                unset($parent[$position]);
                $parent = array_values($parent);
        }
+       
+       // On remet les options générales après avoir manipulé
+       if (isset($options_generales)) {
+               $saisies['options'] = $options_generales;
+       }
 
        return $saisies;
 }
@@ -56,6 +67,12 @@ function saisies_supprimer($saisies, $id_ou_nom_ou_chemin) {
  *     Tableau des saisies complété de la saisie insérée
  */
 function saisies_inserer($saisies, $saisie, $chemin = array()) {
+       // On enlève les options générales avant de manipuler
+       if (isset($saisies['options'])) {
+               $options_generales = $saisies['options'];
+               unset($saisies['options']);
+       }
+       
        // On vérifie quand même que ce qu'on veut insérer est correct
        if ($saisie['saisie'] and $saisie['options']['nom']) {
                // ajouter un identifiant
@@ -85,7 +102,12 @@ function saisies_inserer($saisies, $saisie, $chemin = array()) {
                // Et enfin on insère
                array_splice($parent, $position, 0, array($saisie));
        }
-
+       
+       // On remet les options générales après avoir manipulé
+       if (isset($options_generales)) {
+               $saisies['options'] = $options_generales;
+       }
+       
        return $saisies;
 }
 
@@ -268,7 +290,7 @@ function saisies_transformer_noms_auto($formulaire, $saisies) {
                        unset($new['saisies']);
                        $formulaire[] = $new;
 
-                       if (is_array($saisie['saisies'])) {
+                       if (isset($saisie['saisies']) and is_array($saisie['saisies'])) {
                                $saisies[$cle]['saisies'] = saisies_transformer_noms_auto($formulaire, $saisie['saisies']);
                        }
                }