Changeset 109704 in spip-zone


Ignore:
Timestamp:
Mar 27, 2018, 3:35:49 PM (16 months ago)
Author:
bystrano@…
Message:

Fonctionne correctement avec les saisies fieldset

Location:
_plugins_/saisie_liste/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/saisie_liste/trunk/paquet.xml

    r109423 r109704  
    22        prefix="saisie_liste"
    33        categorie="outil"
    4         version="1.4.9"
     4        version="1.4.10"
    55        etat="stable"
    66        compatibilite="[3.0.10;3.2.*]"
  • _plugins_/saisie_liste/trunk/saisie_liste_fonctions.php

    r109652 r109704  
    1717
    1818        return implode($liant, $tableau);
     19}
     20
     21/**
     22 * Appliquer récursivement une fonction à une liste de saisies
     23 *
     24 * On traite aussi les sous-saisies quand il y en a.
     25 *
     26 * @param callable $f : La fonction qu'on applique aux saisies. N'est pas sensée
     27 *     toucher aux sous-saisies…
     28 * @param array $saisies : Le tableau de saisies.
     29 *
     30 * @return array : La liste après application de la fonction
     31 */
     32function saisies_map_recursif($f, $saisies) {
     33
     34        foreach ($saisies as $i => $saisie) {
     35                $saisies[$i] = $f($saisie);
     36
     37                if (isset($saisie['saisies']) and
     38                                is_array($saisie['saisies'])) {
     39                        $saisies[$i]['saisies'] =
     40                                saisies_map_recursif($f, $saisie['saisies']);
     41                }
     42        }
     43
     44        return $saisies;
    1945}
    2046
     
    111137
    112138/**
    113  * renommer_saisies - renomme les saisies d'un objet d'une saisie liste_objet pour en faire des sous-saisies.
     139 * renommer_saisies - renomme les saisies d'un objet d'une saisie liste_objet
     140 * pour en faire des sous-saisies.
    114141 *
    115142 * Parcours les noms de l'objet, et change "nom" en
     
    128155function renommer_saisies($tableau_saisie, $index_objet, $nom_objet) {
    129156
    130         $tableau_saisie['options']['nom'] = $nom_objet . '['.$index_objet.']['.$tableau_saisie['options']['nom'].']';
     157        $renommer = function ($saisie) use ($index_objet, $nom_objet) {
     158                $saisie['options']['nom'] =
     159                        sprintf('%s[%s][%s]', $nom_objet, $index_objet, $saisie['options']['nom']);
     160                return $saisie;
     161        };
     162
     163        $tableau_saisie = $renommer($tableau_saisie);
     164
     165        if (isset($tableau_saisie['saisies']) and
     166                        is_array($tableau_saisie['saisies'])) {
     167                $tableau_saisie['saisies'] = saisies_map_recursif(
     168                        $renommer,
     169                        $tableau_saisie['saisies']
     170                );
     171        }
    131172
    132173        return $tableau_saisie;
Note: See TracChangeset for help on using the changeset viewer.