Changeset 83931 in spip-zone


Ignore:
Timestamp:
Jul 29, 2014, 1:47:50 PM (7 years ago)
Author:
tcharlss@…
Message:

M.a.j du formulaire pour personnaliser les balises <album>

Des fois, on a besoin de valeurs par défaut enregistrées dans des metas de configuration, qu'on ne peut donc pas indiquer directement dans le YAML. Pour prendre en charge ce cas là, on procède de la sorte :

  • dans le YAML, on peut utiliser une option "config", avec pour valeur le meta de configuration. Exemple :

saisie: 'input'

options:

nom: 'mon_parametre'
config: 'plugin/mon_parametre'

  • et dans le formulaire, en présence de cette option, on va récupérer la valeur avec lire_config().

Bien sûr dans ce cas, il ne faut pas utiliser l'option « defaut ».

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/albums/trunk/formulaires/balise_album.php

    r83722 r83931  
    55 * Ce formulaire permet de générer la balise d'un album en fonction du modèle et des options choisis.
    66 * Les modèles et leurs paramètres sont décris dans des fichiers yaml.
    7  *
    8  * Les yaml sont compatibles avec ceux du plugin «Insérer modèles».
    9  * La saisie «id_modele» n'est là que pour assurer la compatibilité,
    10  * et la saisie «id_album» permet de restreindre son affichage au formulaire de «Insérer modèle».
    11  * On a un yaml par variante car les options sont trop différentes.
    12  * Il y a 2 paramètres supplémentaires : «alias» et «description».
     7 * Ces yaml sont compatibles avec ceux du plugin « Insérer modèles », à quelques différences près :
     8 *
     9 * - On a un yaml par variante car les options sont trop différentes.
     10 * - Il y a 2 paramètres supplémentaires pour décrire le modèle : `alias` et `description`.
     11 * - Pour chaque saisie, l'option `config` permet d'aller chercher la valeur par défaut dans un meta.
     12 *   Exemple : `config: 'nivoslider/width'`
     13 * - La saisie `id_modele` n'est là que pour assurer la compatibilité avec « Insérer modèle »,
     14 *   c'est pourquoi elle est cachée dans ce formulaire via la saisie `id_album` (afficher_si).
    1315 *
    1416 * @plugin     Albums
     
    9092                                ) {
    9193                                        $valeurs['_saisies'] = $saisies;
     94                                        include_spip('inc/config');
     95                                        // valeurs des saisies
    9296                                        foreach($saisies as $saisie=>$params) {
    93                                                 $param = $params['options']['nom'];
    94                                                 // le champ «id_modele» n'est là que pour compat avec le plugin «Insérer modèles»
    95                                                 // il est caché avec «afficher_si» quand le champ caché «id_album» est renseigné
    96                                                 $valeur = (in_array($param,array('id_modele','id_album'))) ? $id_album : '';
    97                                                 $valeurs[$param] = $valeur;
     97                                                $nom = $params['options']['nom'];
     98                                                $valeurs[$nom] = '';
     99                                                // on récupère éventuellement la valeur par défaut dans un meta
     100                                                if (isset($params['options']['config']))
     101                                                        $valeurs[$nom] = lire_config($params['options']['config']);
     102                                                // on donne une valeur par défaut à « id_album » afin de cacher le champ « id_modele » (via afficher_si),
     103                                                // qui n'est là que pour compatibilité avec le plugin « Insérer modèles »
     104                                                $valeurs['id_album'] = $id_album;
    98105                                        }
    99106                                }
Note: See TracChangeset for help on using the changeset viewer.