Changeset 75182 in spip-zone


Ignore:
Timestamp:
Aug 31, 2013, 9:34:53 PM (6 years ago)
Author:
maieul@…
Message:

saisies_chaine2tableau permet de faire des sous-tableau : ceux-ci commencent avec une ligne commencant par *. La clef est le reste de la ligne

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/saisies/inc/saisies.php

    r75178 r75182  
    250250 * - une ligne devient une case
    251251 * - si la ligne est de la forme truc|bidule alors truc est la clé et bidule la valeur
    252  *
     252 * - si la ligne commence par * alors on commence un sous-tableau
    253253 * @param string $chaine Une chaine à transformer
    254254 * @return array Retourne un tableau PHP
     
    257257        if ($chaine and is_string($chaine)){
    258258                $tableau = array();
     259                $soustab = False;
    259260                // On découpe d'abord en lignes
    260261                $lignes = explode($separateur, $chaine);
     
    263264                        // Si ce n'est pas une ligne sans rien
    264265                        if ($ligne !== ''){
     266                                // si ca commence par * c'est qu'on va faire un sous tableau
     267                                if (strpos($ligne,"*")===0){
     268                                                $soustab=True;
     269                                                $soustab_cle    = _T_ou_typo(substr($ligne,1), 'multi');
     270                                                if (!isset($tableau[$soustab_cle])){
     271                                                        $tableau[$soustab_cle] = array();
     272                                                }
     273                                        }
     274                                else{//sinon c'est une entrée normale
    265275                                // Si on trouve un découpage dans la ligne on fait cle|valeur
    266                                 if (strpos($ligne, '|') !== false){
    267                                         list($cle,$valeur) = explode('|', $ligne, 2);
    268                                         // permettre les traductions de valeurs au passage
    269                                         $tableau[$cle] = _T_ou_typo($valeur, 'multi');
    270                                 }
     276                                        if (strpos($ligne, '|') !== false){
     277                                                list($cle,$valeur) = explode('|', $ligne, 2);
     278                                                // permettre les traductions de valeurs au passage
     279                                                if ($soustab == True){
     280                                                        $tableau[$soustab_cle][$cle] = _T_ou_typo($valeur, 'multi');
     281                                                        }
     282                                                else{
     283                                                        $tableau[$cle] = _T_ou_typo($valeur, 'multi');
     284                                                        }
     285                                        }
    271286                                // Sinon on génère la clé
    272                                 else{
    273                                         $tableau[$i] = _T_ou_typo($ligne);
     287                                        else{
     288                                                if ($soustab == True){
     289                                                        $tableau[$soustab_cle][$i] = _T_ou_typo($ligne);
     290                                                        }
     291                                                else{
     292                                                        $tableau[$i] = _T_ou_typo($ligne);
     293                                                        }
     294                                        }
    274295                                }
    275296                        }
Note: See TracChangeset for help on using the changeset viewer.