Changeset 35792 in spip-zone


Ignore:
Timestamp:
Mar 4, 2010, 3:36:00 PM (10 years ago)
Author:
kent1@…
Message:

on ajoute des vues accessibles à champs extras 2 dans extra-vues pour l'instant (ici le cas du pays)

le plugin verifier passe en charger_fonction

Location:
_plugins_/saisies
Files:
2 added
1 edited

Legend:

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

    r35755 r35792  
    2121                )
    2222        );
    23        
     23
    2424        return $saisies_autonomes;
    2525}
     
    4040 * )
    4141 * Les options de la saisie ont une clé textuelle, tandis que les éventuelles saisies enfants ont des clés numériques indiquant leur rang.
    42  * 
     42 *
    4343 * @param array $saisie La description d'une saisie sous la forme d'un tableau
    4444 * @param arary $env L'environnement dans lequel sera construit la saisie (sert notamment pour récupérer la valeur du champ)
     
    4646 */
    4747function saisies_generer_html($saisie, $env=array()){
    48        
     48
    4949        // Si le parametre n'est pas bon, on genere du vide
    5050        if (!is_array($saisie))
    5151                return '';
    52        
     52
    5353        // On sépare les options et les saisies enfants
    5454        $cles = array_keys($saisie);
     
    6363        $options = array_intersect_key($saisie, $cles_options);
    6464        $enfants = array_intersect_key($saisie, $cles_enfants);
    65        
     65
    6666        // Le contexte c'est d'abord les options de la saisie
    6767        // Peut-être des transformations à faire sur les options textuelles
    6868        $contexte = _T_ou_typo($options, 'multi');
    69        
     69
    7070        // Si on ne trouve pas de type de saisie on met input par defaut
    7171        if (!$contexte['type_saisie'])
    7272                $contexte['type_saisie'] = 'input';
    73        
     73
    7474        // Si env est définie dans les options, on ajoute tout l'environnement
    7575        if(isset($contexte['env'])){
     
    8383                $contexte['erreurs'] = $env['erreurs'];
    8484        }
    85        
     85
    8686        // Dans tous les cas on récupère de l'environnement la valeur actuelle du champ
    8787        // Si le nom du champ est un tableau indexé, il faut parser !
     
    9797        else
    9898                $contexte['valeur'] = $env[$contexte['nom']];
    99        
     99
    100100        // S'il y a des saisies enfants, on les ajoute au contexte
    101101        if ($enfants and is_array($enfants)){
    102102                $contexte['saisies'] = $enfants;
    103103        }
    104        
     104
    105105        // On génère la saisie
    106106        return recuperer_fond(
     
    108108                $contexte
    109109        );
    110        
     110
    111111}
    112112
     
    120120function saisies_recuperer_saisies($contenu){
    121121        $saisies = array();
    122        
     122
    123123        if (is_array($contenu)){
    124124                foreach ($contenu as $ligne){
     
    133133                }
    134134        }
    135        
     135
    136136        return $saisies;
    137137}
     
    156156function saisies_verifier($formulaire){
    157157        $erreurs = array();
    158        
     158
     159        $verif_fonction = charger_fonction('verifier','inc',true);
     160
    159161        $saisies = saisies_recuperer_saisies($formulaire);
    160162        foreach ($saisies as $saisie){
     
    162164                $champ = $saisie['options']['nom'];
    163165                $verifier = $saisie['verifier'];
    164                
     166
    165167                // Si le nom du champ est un tableau indexé, il faut parser !
    166168                if (preg_match('/([\w]+)((\[[\w]+\])+)/', $champ, $separe)){
     
    175177                else
    176178                        $valeur = _request($champ);
    177                
     179
    178180                // On regarde d'abord si le champ est obligatoire
    179181                if ($obligatoire and $obligatoire != 'non' and ($valeur == ''))
    180182                        $erreurs[$champ] = _T('info_obligatoire');
    181                
     183
    182184                // On continue seulement si ya pas d'erreur d'obligation et qu'il y a une demande de verif
    183185                if (!$erreurs[$champ] and is_array($verifier)){
    184186                        // Si le champ n'est pas valide par rapport au test demandé, on ajoute l'erreur
    185                         if ($erreur_eventuelle = verifier($valeur, $verifier['type'], $verifier['options']))
     187                        if ($erreur_eventuelle = $verif_fonction($valeur, $verifier['type'], $verifier['options']))
    186188                                $erreurs[$champ] = $erreur_eventuelle;
    187189                }
    188190        }
    189        
     191
    190192        return $erreurs;
    191193}
     
    198200function saisies_lister_disponibles(){
    199201        static $saisies = null;
    200        
     202
    201203        if (is_null($saisies)){
    202204                $saisies = array();
    203205                $liste = find_all_in_path('saisies/', '.+[.]yaml$');
    204                
     206
    205207                if (count($liste)){
    206208                        foreach ($liste as $fichier=>$chemin){
     
    218220                }
    219221        }
    220        
     222
    221223        return $saisies;
    222224}
     
    243245 * Génère un nom unique pour un champ d'un formulaire donné
    244246 *
    245  * @param array $formulaire Le formulaire à analyser 
    246  * @param string $type_saisie Le type de champ dont on veut un identifiant 
     247 * @param array $formulaire Le formulaire à analyser
     248 * @param string $type_saisie Le type de champ dont on veut un identifiant
    247249 * @return string Un nom unique par rapport aux autres champs du formulaire
    248250 */
    249251function saisies_generer_nom($formulaire, $type_saisie){
    250252        $champs = saisies_recuperer_champs($formulaire);
    251        
     253
    252254        // Tant que type_numero existe, on incrémente le compteur
    253255        $compteur = 1;
    254256        while (array_search($type_saisie.'_'.$compteur, $champs) !== false)
    255257                $compteur++;
    256        
     258
    257259        // On a alors un compteur unique pour ce formulaire
    258260        return $type_saisie.'_'.$compteur;
     
    263265 *
    264266 * @param array $saisie La description d'une seule saisie
    265  * @param string $insertion Du code HTML à insérer dans la saisie 
     267 * @param string $insertion Du code HTML à insérer dans la saisie
    266268 * @param string $ou L'endroit où insérer le HTML : "debut" ou "fin"
    267269 * @return array Retourne la description de la saisie modifiée
     
    270272        if (!in_array($ou, array('debut', 'fin')))
    271273                $ou = 'fin';
    272        
     274
    273275        if ($ou == 'debut')
    274276                $saisie['options']['inserer_debut'] = $insertion.$saisie['options']['inserer_debut'];
    275277        elseif ($ou == 'fin')
    276278                $saisie['options']['inserer_fin'] = $saisie['options']['inserer_fin'].$insertion;
    277        
     279
    278280        return $saisie;
    279281}
Note: See TracChangeset for help on using the changeset viewer.