Changeset 36575 in spip-zone


Ignore:
Timestamp:
Mar 23, 2010, 8:55:09 PM (9 years ago)
Author:
rastapopoulos@…
Message:

Déplacement et renommage de fonction pour plus de cohérence

Location:
_plugins_/saisies
Files:
1 deleted
3 edited

Legend:

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

    r36163 r36575  
    318318 * Le tableau doit être de la forme suivante :
    319319 * array(
    320  *              'type_saisie' => 'input',
    321  *              'nom' => 'le_name',
    322  *              'label' => 'Un titre plus joli',
    323  *              'obligatoire' => 'oui',
    324  *              'explication' => 'Remplissez ce champ en utilisant votre clavier.',
    325  *              0 => array(une saisie enfant),
    326  *              1 => array(une autre saisie enfant),
    327  *              2 => array(etc)
     320 *              'saisie' => 'input',
     321 *              'options' => array(
     322 *                      'nom' => 'le_name',
     323 *                      'label' => 'Un titre plus joli',
     324 *                      'obligatoire' => 'oui',
     325 *                      'explication' => 'Remplissez ce champ en utilisant votre clavier.'
     326 *              )
    328327 * )
    329  * Les options de la saisie ont une clé textuelle, tandis que les éventuelles saisies enfants ont des clés numériques indiquant leur rang.
    330  *
    331  * @param array $saisie La description d'une saisie sous la forme d'un tableau
    332  * @param arary $env L'environnement dans lequel sera construit la saisie (sert notamment pour récupérer la valeur du champ)
    333  * @return string Retourne le HTML de la saisie
    334  */
    335 function saisies_generer_html($saisie, $env=array()){
     328 */
     329function saisies_generer_html($champ, $env=array()){
    336330       
    337331        // Si le parametre n'est pas bon, on genere du vide
    338         if (!is_array($saisie))
     332        if (!is_array($champ))
    339333                return '';
    340334       
    341         // On sépare les options et les saisies enfants
    342         $cles = array_keys($saisie);
    343         // Les saisies enfants ce sont les clés numériques
    344         $cles_enfants = array_filter($cles, 'is_int');
    345         // Les options ce sont les autres
    346         $cles_options = array_diff($cles, $cles_enfants);
    347         // On remet les clés en tant que clés
    348         $cles_enfants = array_flip($cles_enfants);
    349         $cles_options = array_flip($cles_options);
    350         // On récupère chaque morceaux
    351         $options = array_intersect_key($saisie, $cles_options);
    352         $enfants = array_intersect_key($saisie, $cles_enfants);
    353        
    354         // Le contexte c'est d'abord les options de la saisie
     335        $contexte = array();
     336       
     337        // On sélectionne le type de saisie
     338        $contexte['type_saisie'] = $champ['saisie'];
     339       
    355340        // Peut-être des transformations à faire sur les options textuelles
    356         $contexte = _T_ou_typo($options, 'multi');
    357        
    358         // Si on ne trouve pas de type de saisie on met input par defaut
    359         if (!$contexte['type_saisie'])
    360                 $contexte['type_saisie'] = 'input';
    361        
    362         // Si env est définie dans les options, on ajoute tout l'environnement
    363         if(isset($contexte['env'])){
     341        $options = $champ['options'];
     342        foreach ($options as $option => $valeur){
     343                $options[$option] = _T_ou_typo($valeur, 'multi');
     344        }
     345       
     346        // On ajoute les options propres à la saisie
     347        $contexte = array_merge($contexte, $options);
     348       
     349        // Si env est définie dans les options ou qu'il y a des enfants, on ajoute tout l'environnement
     350        if(isset($contexte['env']) or is_array($champ['saisies'])){
    364351                unset($contexte['env']);
    365                 // Les options de la saisie sont prioritaires sur l'environnement
     352               
     353                // À partir du moment où on passe tout l'environnement, il faut enlever certains éléments qui ne doivent absolument provenir que des options
     354                unset($env['inserer_debut']);
     355                unset($env['inserer_fin']);
     356                $saisies_disponibles = saisies_lister_disponibles();
     357                if (is_array($saisies_disponibles[$contexte['type_saisie']]['options'])){
     358                        $options_a_supprimer = saisies_lister_champs($saisies_disponibles[$contexte['type_saisie']]['options']);
     359                        foreach ($options_a_supprimer as $option_a_supprimer){
     360                                unset($env[$option_a_supprimer]);
     361                        }
     362                }
     363               
    366364                $contexte = array_merge($env, $contexte);
    367365        }
     
    386384                $contexte['valeur'] = $env[$contexte['nom']];
    387385       
    388         // S'il y a des saisies enfants, on les ajoute au contexte
    389         if ($enfants and is_array($enfants)){
    390                 $contexte['saisies'] = $enfants;
    391         }
     386        // Si ya des enfants on les remonte dans le contexte
     387        if (is_array($champ['saisies']))
     388                $contexte['saisies'] = $champ['saisies'];
    392389       
    393390        // On génère la saisie
  • _plugins_/saisies/inclure/generer_saisies.html

    r35738 r36575  
    3838<BOUCLE_contenu(POUR){tableau #ENV{saisies}}>
    3939[(#VAL{saisie}|array_key_exists{#VALEUR}|oui)
    40 [(#VALEUR|generer_saisie{#ENV**|unserialize})]
     40[(#VALEUR|saisies_generer_html{#ENV**|unserialize})]
    4141]
    4242</BOUCLE_contenu>
  • _plugins_/saisies/plugin.xml

    r35769 r36575  
    33    <auteur>Matthieu Marcillaud - Mehdi Cherifi (Superyms) traduction.</auteur>
    44    <licence>&#169; 2009 GNU/GPL</licence>
    5     <version>1.6.9</version>
     5    <version>1.6.10</version>
    66    <etat>test</etat>
    77   
     
    3131    <fonctions>balise/saisie.php</fonctions>
    3232    <fonctions>inc/saisies.php</fonctions>
    33     <fonctions>saisies_fonctions.php</fonctions>
    3433    <options>saisies_options.php</options>
    3534        <necessite id="SPIP" version="[2.0;]" />
Note: See TracChangeset for help on using the changeset viewer.