Changeset 106152 in spip-zone


Ignore:
Timestamp:
Sep 9, 2017, 1:16:11 PM (3 years ago)
Author:
teddy.spip@…
Message:

Une petite sécurité sur la page saisies_doc. Pour lire le contenu d'un fichier YAML, il faut… le plugin YAML.

Location:
_plugins_/saisies/trunk
Files:
5 edited

Legend:

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

    r102499 r106152  
    99// Sécurité
    1010if (!defined('_ECRIRE_INC_VERSION')) {
    11         return;
     11    return;
    1212}
    1313
     
    2121 * @return array Un tableau avec uniquement les saisies
    2222 */
    23 function saisies_lister_par_identifiant($contenu, $avec_conteneur = true) {
    24         $saisies = array();
    25 
    26         if (is_array($contenu)) {
    27                 foreach ($contenu as $ligne) {
    28                         if (is_array($ligne)) {
    29                                 $enfants_presents = (isset($ligne['saisies']) and is_array($ligne['saisies']));
    30                                 if (array_key_exists('saisie', $ligne) and (!$enfants_presents or $avec_conteneur)) {
    31                                         $saisies[$ligne['identifiant']] = $ligne;
    32                                 }
    33                                 if ($enfants_presents) {
    34                                         $saisies = array_merge($saisies, saisies_lister_par_identifiant($ligne['saisies']));
    35                                 }
    36                         }
    37                 }
    38         }
    39 
    40         return $saisies;
     23function saisies_lister_par_identifiant($contenu, $avec_conteneur = true)
     24{
     25    $saisies = array();
     26
     27    if (is_array($contenu)) {
     28        foreach ($contenu as $ligne) {
     29            if (is_array($ligne)) {
     30                $enfants_presents = (isset($ligne['saisies']) and is_array($ligne['saisies']));
     31                if (array_key_exists('saisie', $ligne) and (!$enfants_presents or $avec_conteneur)) {
     32                    $saisies[$ligne['identifiant']] = $ligne;
     33                }
     34                if ($enfants_presents) {
     35                    $saisies = array_merge($saisies, saisies_lister_par_identifiant($ligne['saisies']));
     36                }
     37            }
     38        }
     39    }
     40
     41    return $saisies;
    4142}
    4243
     
    5051 * @return array Un tableau avec uniquement les saisies
    5152 */
    52 function saisies_lister_par_nom($contenu, $avec_conteneur = true) {
    53         $saisies = array();
    54 
    55         if (is_array($contenu)) {
    56                 foreach ($contenu as $ligne) {
    57                         if (is_array($ligne)) {
    58                                 if (array_key_exists('saisie', $ligne)
    59                                         and (!isset($ligne['saisies']) or !is_array($ligne['saisies']) or $avec_conteneur)
    60                                         and isset($ligne['options'])) {
    61                                         $saisies[$ligne['options']['nom']] = $ligne;
    62                                 }
    63                                 if (isset($ligne['saisies']) and is_array($ligne['saisies'])) {
    64                                         $saisies = array_merge($saisies, saisies_lister_par_nom($ligne['saisies']));
    65                                 }
    66                         }
    67                 }
    68         }
    69 
    70         return $saisies;
     53function saisies_lister_par_nom($contenu, $avec_conteneur = true)
     54{
     55    $saisies = array();
     56
     57    if (is_array($contenu)) {
     58        foreach ($contenu as $ligne) {
     59            if (is_array($ligne)) {
     60                if (array_key_exists('saisie', $ligne)
     61                    and (!isset($ligne['saisies']) or !is_array($ligne['saisies']) or $avec_conteneur)
     62                    and isset($ligne['options'])) {
     63                    $saisies[$ligne['options']['nom']] = $ligne;
     64                }
     65                if (isset($ligne['saisies']) and is_array($ligne['saisies'])) {
     66                    $saisies = array_merge($saisies, saisies_lister_par_nom($ligne['saisies']));
     67                }
     68            }
     69        }
     70    }
     71
     72    return $saisies;
    7173}
    7274
     
    7678 *
    7779 *
    78  * @param String $option  Nom de l'option cherchée
    79  * @param Array  $saisies Liste de saisies
    80  * @param String $tri     tri par défaut des résultats (s'ils ne sont pas deja triés) ('nom', 'identifiant')
     80 * @param string $option  Nom de l'option cherchée
     81 * @param array  $saisies Liste de saisies
     82 * @param string $tri     tri par défaut des résultats (s'ils ne sont pas deja triés) ('nom', 'identifiant')
    8183 *
    8284 * @return liste de ces saisies triees par nom ayant une option X définie
    8385 */
    84 function saisies_lister_avec_option($option, $saisies, $tri = 'nom') {
    85         $saisies_option = array();
    86         // tri par nom si ce n'est pas le cas
    87         $s = array_keys($saisies);
    88         if (is_int(array_shift($s))) {
    89                 $trier = 'saisies_lister_par_'.$tri;
    90                 $saisies = $trier($saisies);
    91         }
    92         foreach ($saisies as $nom_ou_id => $saisie) {
    93                 if (isset($saisie['options'][$option]) and $saisie['options'][$option]) {
    94                         $saisies_option[$nom_ou_id] = $saisie;
    95                 }
    96         }
    97 
    98         return $saisies_option;
     86function saisies_lister_avec_option($option, $saisies, $tri = 'nom')
     87{
     88    $saisies_option = array();
     89    // tri par nom si ce n'est pas le cas
     90    $s = array_keys($saisies);
     91    if (is_int(array_shift($s))) {
     92        $trier = 'saisies_lister_par_'.$tri;
     93        $saisies = $trier($saisies);
     94    }
     95    foreach ($saisies as $nom_ou_id => $saisie) {
     96        if (isset($saisie['options'][$option]) and $saisie['options'][$option]) {
     97            $saisies_option[$nom_ou_id] = $saisie;
     98        }
     99    }
     100
     101    return $saisies_option;
    99102}
    100103
     
    102105 * Liste les saisies ayant une definition SQL.
    103106 *
    104  * @param Array  $saisies liste de saisies
    105  * @param String $tri     tri par défaut des résultats (s'ils ne sont pas deja triés) ('nom', 'identifiant')
     107 * @param array  $saisies liste de saisies
     108 * @param string $tri     tri par défaut des résultats (s'ils ne sont pas deja triés) ('nom', 'identifiant')
    106109 *
    107110 * @return liste de ces saisies triees par nom ayant une option sql définie
    108111 */
    109 function saisies_lister_avec_sql($saisies, $tri = 'nom') {
    110         return saisies_lister_avec_option('sql', $saisies, $tri);
    111 }
    112 
    113 /**
    114  * Liste les saisies d'un certain type
     112function saisies_lister_avec_sql($saisies, $tri = 'nom')
     113{
     114    return saisies_lister_avec_option('sql', $saisies, $tri);
     115}
     116
     117/**
     118 * Liste les saisies d'un certain type.
    115119 *
    116120 * @example `$saisies_date = saisies_lister_avec_type($saisies, 'date')`
    117121 *
    118  * @param Array  $saisies liste de saisies
    119  * @param string $type Type de la saisie
    120  * @param String $tri     tri par défaut des résultats (s'ils ne sont pas deja triés) ('nom')
     122 * @param array  $saisies liste de saisies
     123 * @param string $type    Type de la saisie
     124 * @param string $tri     tri par défaut des résultats (s'ils ne sont pas deja triés) ('nom')
    121125 *
    122126 * @return liste de ces saisies triees par nom
    123127 */
    124 function saisies_lister_avec_type($saisies, $type, $tri = 'nom') {
    125         $saisies_type = array();
    126         // tri par nom si ce n'est pas le cas
    127         $s = array_keys($saisies);
    128         if (is_int(array_shift($s))) {
    129                 $trier = 'saisies_lister_par_'.$tri;
    130                 $saisies = $trier($saisies);
    131         }
    132         foreach ($saisies as $nom_ou_id => $saisie) {
    133                 if ($saisie['saisie'] == $type) {
    134                         $saisies_type[$nom_ou_id] = $saisie;
    135                 }
    136         }
    137 
    138         return $saisies_type;
     128function saisies_lister_avec_type($saisies, $type, $tri = 'nom')
     129{
     130    $saisies_type = array();
     131    // tri par nom si ce n'est pas le cas
     132    $s = array_keys($saisies);
     133    if (is_int(array_shift($s))) {
     134        $trier = 'saisies_lister_par_'.$tri;
     135        $saisies = $trier($saisies);
     136    }
     137    foreach ($saisies as $nom_ou_id => $saisie) {
     138        if ($saisie['saisie'] == $type) {
     139            $saisies_type[$nom_ou_id] = $saisie;
     140        }
     141    }
     142
     143    return $saisies_type;
    139144}
    140145
     
    148153 * @return array Un tableau avec uniquement les saisies
    149154 */
    150 function saisies_lister_par_type($contenu) {
    151         $saisies = array();
    152 
    153         if (is_array($contenu)) {
    154                 foreach ($contenu as $ligne) {
    155                         if (is_array($ligne)) {
    156                                 if (array_key_exists('saisie', $ligne) and (!is_array($ligne['saisies']))) {
    157                                         $saisies[ $ligne['saisie'] ][ $ligne['options']['nom'] ] = $ligne;
    158                                 }
    159                                 if (is_array($ligne['saisies'])) {
    160                                         $saisies = array_merge_recursive($saisies, saisies_lister_par_type($ligne['saisies']));
    161                                 }
    162                         }
    163                 }
    164         }
    165 
    166         return $saisies;
     155function saisies_lister_par_type($contenu)
     156{
     157    $saisies = array();
     158
     159    if (is_array($contenu)) {
     160        foreach ($contenu as $ligne) {
     161            if (is_array($ligne)) {
     162                if (array_key_exists('saisie', $ligne) and (!is_array($ligne['saisies']))) {
     163                    $saisies[ $ligne['saisie'] ][ $ligne['options']['nom'] ] = $ligne;
     164                }
     165                if (is_array($ligne['saisies'])) {
     166                    $saisies = array_merge_recursive($saisies, saisies_lister_par_type($ligne['saisies']));
     167                }
     168            }
     169        }
     170    }
     171
     172    return $saisies;
    167173}
    168174
     
    176182 * @return array Un tableau listant les noms des champs
    177183 */
    178 function saisies_lister_champs($contenu, $avec_conteneur = true) {
    179         $saisies = saisies_lister_par_nom($contenu, $avec_conteneur);
    180 
    181         return array_keys($saisies);
     184function saisies_lister_champs($contenu, $avec_conteneur = true)
     185{
     186    $saisies = saisies_lister_par_nom($contenu, $avec_conteneur);
     187
     188    return array_keys($saisies);
    182189}
    183190
     
    191198 * @return array Un tableau de contexte
    192199 */
    193 function saisies_charger_champs($contenu) {
    194         // array_fill_keys est disponible uniquement avec PHP >= 5.2.0
    195         // return array_fill_keys(saisies_lister_champs($contenu, false), '');
    196         $champs = array();
    197         foreach (saisies_lister_champs($contenu, false) as $champ) {
    198                 $champs[$champ] = '';
    199         }
    200 
    201         return $champs;
     200function saisies_charger_champs($contenu)
     201{
     202    // array_fill_keys est disponible uniquement avec PHP >= 5.2.0
     203    // return array_fill_keys(saisies_lister_champs($contenu, false), '');
     204    $champs = array();
     205    foreach (saisies_lister_champs($contenu, false) as $champ) {
     206        $champs[$champ] = '';
     207    }
     208
     209    return $champs;
    202210}
    203211
     
    210218 * @return array Un tableau renvoyant la valeur par défaut de chaque champs
    211219 */
    212 function saisies_lister_valeurs_defaut($contenu) {
    213         $contenu = saisies_lister_par_nom($contenu, false);
    214         $defauts = array();
    215         foreach ($contenu as $nom => $saisie) {
    216                 // Si le nom du champ est un tableau indexé, il faut parser !
    217                 if (preg_match('/([\w]+)((\[[\w]+\])+)/', $nom, $separe)) {
    218                         $nom = $separe[1];
    219                         // Dans ce cas on ne récupère que le nom,
    220                         // la valeur par défaut du tableau devra être renseigné autre part
    221                         $defauts[$nom] = array();
    222                 } else {
    223                         $defauts[$nom] = isset($saisie['options']['defaut']) ? $saisie['options']['defaut'] : '';
    224                 }
    225         }
    226 
    227         return $defauts;
     220function saisies_lister_valeurs_defaut($contenu)
     221{
     222    $contenu = saisies_lister_par_nom($contenu, false);
     223    $defauts = array();
     224    foreach ($contenu as $nom => $saisie) {
     225        // Si le nom du champ est un tableau indexé, il faut parser !
     226        if (preg_match('/([\w]+)((\[[\w]+\])+)/', $nom, $separe)) {
     227            $nom = $separe[1];
     228            // Dans ce cas on ne récupère que le nom,
     229            // la valeur par défaut du tableau devra être renseigné autre part
     230            $defauts[$nom] = array();
     231        } else {
     232            $defauts[$nom] = isset($saisie['options']['defaut']) ? $saisie['options']['defaut'] : '';
     233        }
     234    }
     235
     236    return $defauts;
    228237}
    229238
     
    238247 * @return array Retourne le tableau des saisies supprimées, ajoutées et modifiées
    239248 */
    240 function saisies_comparer($saisies_anciennes, $saisies_nouvelles, $avec_conteneur = true, $tri = 'nom') {
    241         $trier = "saisies_lister_par_$tri";
    242         $saisies_anciennes = $trier($saisies_anciennes, $avec_conteneur);
    243         $saisies_nouvelles = $trier($saisies_nouvelles, $avec_conteneur);
    244 
    245         // Les saisies supprimées sont celles qui restent dans les anciennes quand on a enlevé toutes les nouvelles
    246         $saisies_supprimees = array_diff_key($saisies_anciennes, $saisies_nouvelles);
    247         // Les saisies ajoutées, c'est le contraire
    248         $saisies_ajoutees = array_diff_key($saisies_nouvelles, $saisies_anciennes);
    249         // Il reste alors les saisies qui ont le même nom
    250         $saisies_restantes = array_intersect_key($saisies_anciennes, $saisies_nouvelles);
    251         // Dans celles-ci, celles qui sont modifiées sont celles dont la valeurs est différentes
    252         $saisies_modifiees = array_udiff(array_diff_key($saisies_nouvelles, $saisies_ajoutees), $saisies_restantes, 'saisies_comparer_rappel');
    253         #$saisies_modifiees = array_udiff($saisies_nouvelles, $saisies_restantes, 'saisies_comparer_rappel');
    254         // Et enfin les saisies qui ont le même nom et la même valeur
    255         $saisies_identiques = array_diff_key($saisies_restantes, $saisies_modifiees);
    256 
    257         return array(
    258                 'supprimees' => $saisies_supprimees,
    259                 'ajoutees' => $saisies_ajoutees,
    260                 'modifiees' => $saisies_modifiees,
    261                 'identiques' => $saisies_identiques,
    262         );
     249function saisies_comparer($saisies_anciennes, $saisies_nouvelles, $avec_conteneur = true, $tri = 'nom')
     250{
     251    $trier = "saisies_lister_par_$tri";
     252    $saisies_anciennes = $trier($saisies_anciennes, $avec_conteneur);
     253    $saisies_nouvelles = $trier($saisies_nouvelles, $avec_conteneur);
     254
     255    // Les saisies supprimées sont celles qui restent dans les anciennes quand on a enlevé toutes les nouvelles
     256    $saisies_supprimees = array_diff_key($saisies_anciennes, $saisies_nouvelles);
     257    // Les saisies ajoutées, c'est le contraire
     258    $saisies_ajoutees = array_diff_key($saisies_nouvelles, $saisies_anciennes);
     259    // Il reste alors les saisies qui ont le même nom
     260    $saisies_restantes = array_intersect_key($saisies_anciennes, $saisies_nouvelles);
     261    // Dans celles-ci, celles qui sont modifiées sont celles dont la valeurs est différentes
     262    $saisies_modifiees = array_udiff(array_diff_key($saisies_nouvelles, $saisies_ajoutees), $saisies_restantes, 'saisies_comparer_rappel');
     263    #$saisies_modifiees = array_udiff($saisies_nouvelles, $saisies_restantes, 'saisies_comparer_rappel');
     264    // Et enfin les saisies qui ont le même nom et la même valeur
     265    $saisies_identiques = array_diff_key($saisies_restantes, $saisies_modifiees);
     266
     267    return array(
     268        'supprimees' => $saisies_supprimees,
     269        'ajoutees' => $saisies_ajoutees,
     270        'modifiees' => $saisies_modifiees,
     271        'identiques' => $saisies_identiques,
     272    );
    263273}
    264274
     
    271281 * @return int Retourne 0 si les saisies sont identiques, 1 sinon.
    272282 */
    273 function saisies_comparer_rappel($a, $b) {
    274         if ($a === $b) {
    275                 return 0;
    276         } else {
    277                 return 1;
    278         }
     283function saisies_comparer_rappel($a, $b)
     284{
     285    if ($a === $b) {
     286        return 0;
     287    } else {
     288        return 1;
     289    }
    279290}
    280291
     
    288299 * @param array $saisies_nouvelles Un autre tableau décrivant des saisies
    289300 * @param bool  $avec_conteneur    Indique si on veut prendre en compte dans la comparaison
    290  * les conteneurs comme les fieldsets
     301 *                                 les conteneurs comme les fieldsets
    291302 *
    292303 * @return array Retourne le tableau des saisies supprimées, ajoutées et modifiées
    293304 */
    294 function saisies_comparer_par_identifiant($saisies_anciennes, $saisies_nouvelles, $avec_conteneur = true) {
    295         return saisies_comparer($saisies_anciennes, $saisies_nouvelles, $avec_conteneur, 'identifiant');
     305function saisies_comparer_par_identifiant($saisies_anciennes, $saisies_nouvelles, $avec_conteneur = true)
     306{
     307    return saisies_comparer($saisies_anciennes, $saisies_nouvelles, $avec_conteneur, 'identifiant');
    296308}
    297309
     
    301313 * @return array Un tableau listant des saisies et leurs options
    302314 */
    303 function saisies_lister_disponibles($saisies_repertoire = 'saisies') {
    304         static $saisies = null;
    305 
    306         if (is_null($saisies)) {
    307                 $saisies = array();
    308                 $liste = find_all_in_path("$saisies_repertoire/", '.+[.]yaml$');
    309 
    310                 if (count($liste)) {
    311                         foreach ($liste as $fichier => $chemin) {
    312                                 $type_saisie = preg_replace(',[.]yaml$,i', '', $fichier);
    313                                 $dossier = str_replace($fichier, '', $chemin);
    314                                 // On ne garde que les saisies qui ont bien le HTML avec !
    315                                 if (file_exists("$dossier$type_saisie.html")
    316                                         and (
    317                                                 is_array($saisie = saisies_charger_infos($type_saisie))
    318                                         )
    319                                 ) {
    320                                         $saisies[$type_saisie] = $saisie;
    321                                 }
    322                         }
    323                 }
    324         }
    325 
    326         return $saisies;
     315function saisies_lister_disponibles($saisies_repertoire = 'saisies')
     316{
     317    static $saisies = null;
     318
     319    if (is_null($saisies)) {
     320        $saisies = array();
     321        $liste = find_all_in_path("$saisies_repertoire/", '.+[.]yaml$');
     322
     323        if (count($liste)) {
     324            foreach ($liste as $fichier => $chemin) {
     325                $type_saisie = preg_replace(',[.]yaml$,i', '', $fichier);
     326                $dossier = str_replace($fichier, '', $chemin);
     327
     328                // On ne garde que les saisies qui ont bien le HTML avec !
     329                if (file_exists("$dossier$type_saisie.html")
     330                    and (
     331                        is_array($saisie = saisies_charger_infos($type_saisie))
     332                    )
     333                ) {
     334                    $saisies[$type_saisie] = $saisie;
     335                }
     336            }
     337        }
     338    }
     339
     340    return $saisies;
    327341}
    328342
     
    332346 * @return array Un tableau listant des saisies et leurs options
    333347 */
    334 function saisies_groupes_lister_disponibles($saisies_repertoire = 'saisies') {
    335         static $saisies = null;
    336 
    337         if (is_null($saisies)) {
    338                 $saisies = array();
    339                 $liste = find_all_in_path("$saisies_repertoire/", '.+[.]yaml$');
    340 
    341                 if (count($liste)) {
    342                         foreach ($liste as $fichier => $chemin) {
    343                                 $type_saisie = preg_replace(',[.]yaml$,i', '', $fichier);
    344                                 $dossier = str_replace($fichier, '', $chemin);
    345                                 // On ne garde que les saisies qui ont bien le HTML avec !
    346                                 if (is_array($saisie = saisies_charger_infos($type_saisie, $saisies_repertoire))) {
    347                                         $saisies[$type_saisie] = $saisie;
    348                                 }
    349                         }
    350                 }
    351         }
    352         return $saisies;
     348function saisies_groupes_lister_disponibles($saisies_repertoire = 'saisies')
     349{
     350    static $saisies = null;
     351
     352    if (is_null($saisies)) {
     353        $saisies = array();
     354        $liste = find_all_in_path("$saisies_repertoire/", '.+[.]yaml$');
     355
     356        if (count($liste)) {
     357            foreach ($liste as $fichier => $chemin) {
     358                $type_saisie = preg_replace(',[.]yaml$,i', '', $fichier);
     359                $dossier = str_replace($fichier, '', $chemin);
     360                // On ne garde que les saisies qui ont bien le HTML avec !
     361                if (is_array($saisie = saisies_charger_infos($type_saisie, $saisies_repertoire))) {
     362                    $saisies[$type_saisie] = $saisie;
     363                }
     364            }
     365        }
     366    }
     367
     368    return $saisies;
    353369}
    354370
     
    358374 * @return array Un tableau listant des saisies et leurs options
    359375 */
    360 function saisies_lister_disponibles_sql($saisies_repertoire = 'saisies') {
    361         $saisies = array();
    362         $saisies_disponibles = saisies_lister_disponibles($saisies_repertoire);
    363         foreach ($saisies_disponibles as $type => $saisie) {
    364                 if (isset($saisie['defaut']['options']['sql']) and $saisie['defaut']['options']['sql']) {
    365                         $saisies[$type] = $saisie;
    366                 }
    367         }
    368 
    369         return $saisies;
     376function saisies_lister_disponibles_sql($saisies_repertoire = 'saisies')
     377{
     378    $saisies = array();
     379    $saisies_disponibles = saisies_lister_disponibles($saisies_repertoire);
     380    foreach ($saisies_disponibles as $type => $saisie) {
     381        if (isset($saisie['defaut']['options']['sql']) and $saisie['defaut']['options']['sql']) {
     382            $saisies[$type] = $saisie;
     383        }
     384    }
     385
     386    return $saisies;
    370387}
    371388
     
    377394 * @return array Un tableau contenant le YAML décodé
    378395 */
    379 function saisies_charger_infos($type_saisie, $saisies_repertoire = 'saisies') {
    380         if (defined('_DIR_PLUGIN_YAML')) {
    381                 include_spip('inc/yaml');
    382                 $fichier = find_in_path("$saisies_repertoire/$type_saisie.yaml");
    383                 $saisie = yaml_decode_file($fichier);
    384                 if (is_array($saisie)) {
    385                         $saisie['titre'] = (isset($saisie['titre']) and $saisie['titre'])
    386                                 ? _T_ou_typo($saisie['titre']) : $type_saisie;
    387                         $saisie['description'] = (isset($saisie['description']) and $saisie['description'])
    388                                 ? _T_ou_typo($saisie['description']) : '';
    389                         $saisie['icone'] = (isset($saisie['icone']) and $saisie['icone'])
    390                                 ? find_in_path($saisie['icone']) : '';
    391                 }
    392         } else {
    393                 $saisie = array();
    394         }
    395 
    396         return $saisie;
     396function saisies_charger_infos($type_saisie, $saisies_repertoire = 'saisies')
     397{
     398    if (defined('_DIR_PLUGIN_YAML')) {
     399        include_spip('inc/yaml');
     400        $fichier = find_in_path("$saisies_repertoire/$type_saisie.yaml");
     401        $saisie = yaml_decode_file($fichier);
     402        if (is_array($saisie)) {
     403            $saisie['titre'] = (isset($saisie['titre']) and $saisie['titre'])
     404                ? _T_ou_typo($saisie['titre']) : $type_saisie;
     405            $saisie['description'] = (isset($saisie['description']) and $saisie['description'])
     406                ? _T_ou_typo($saisie['description']) : '';
     407            $saisie['icone'] = (isset($saisie['icone']) and $saisie['icone'])
     408                ? find_in_path($saisie['icone']) : '';
     409        }
     410    } else {
     411        $saisie = array();
     412    }
     413
     414    return $saisie;
    397415}
    398416
     
    402420 * @return array Retourne un tableau contenant les types de saisies qui ne doivent pas utiliser le _base.html commun
    403421 */
    404 function saisies_autonomes() {
    405         $saisies_autonomes = pipeline(
    406                 'saisies_autonomes',
    407                 array(
    408                         'fieldset',
    409                         'hidden',
    410                         'destinataires',
    411                         'explication',
    412                 )
    413         );
    414 
    415         return $saisies_autonomes;
    416 }
     422function saisies_autonomes()
     423{
     424    $saisies_autonomes = pipeline(
     425        'saisies_autonomes',
     426        array(
     427            'fieldset',
     428            'hidden',
     429            'destinataires',
     430            'explication',
     431        )
     432    );
     433
     434    return $saisies_autonomes;
     435}
  • _plugins_/saisies/trunk/lang/saisies_fr.php

    r106147 r106152  
    33// Fichier source, a modifier dans svn://zone.spip.org/spip-zone/_plugins_/saisies/trunk/lang/
    44if (!defined('_ECRIRE_INC_VERSION')) {
    5         return;
     5    return;
    66}
    77
    88$GLOBALS[$GLOBALS['idx_lang']] = array(
    99
    10         // B
    11         'bouton_parcourir_docs_article' => 'Parcourir l’article',
    12         'bouton_parcourir_docs_breve' => 'Parcourir la brève',
    13         'bouton_parcourir_docs_rubrique' => 'Parcourir la rubrique',
    14         'bouton_parcourir_mediatheque' => 'Parcourir la médiathèque',
    15 
    16         // C
    17         'construire_action_annuler' => 'Annuler',
    18         'construire_action_configurer' => 'Configurer',
    19         'construire_action_deplacer' => 'Déplacer',
    20         'construire_action_dupliquer' => 'Dupliquer',
    21         'construire_action_dupliquer_copie' => '(copie)',
    22         'construire_action_supprimer' => 'Supprimer',
    23         'construire_ajouter_champ' => 'Ajouter un champ',
    24         'construire_ajouter_groupe' => 'Ajouter un groupe',
    25         'construire_attention_enregistrer' => 'N’oubliez pas d’enregistrer vos modifications !',
    26         'construire_attention_modifie' => 'Le formulaire ci-dessous est différent du formulaire initial. Vous avez la possibilité de le réinitialiser à son état avant vos modifications.',
    27         'construire_attention_supprime' => 'Vos modifications comportent des suppressions de champs. Veuillez confirmer l’enregistrement de cette nouvelle version du formulaire.',
    28         'construire_aucun_champs' => 'Il n’y a pour l’instant aucun champ dans ce formulaire.',
    29         'construire_confirmer_supprimer_champ' => 'Voulez-vous vraiment supprimer ce champ ?',
    30         'construire_info_nb_champs_masques' => '@nb@ champ(s) masqué(s) le temps de configurer le groupe.',
    31         'construire_position_explication' => 'Indiquez devant quel autre champ sera placé celui-ci.',
    32         'construire_position_fin_formulaire' => 'À la fin du formulaire',
    33         'construire_position_fin_groupe' => 'À la fin du groupe @groupe@',
    34         'construire_position_label' => 'Position du champ',
    35         'construire_reinitialiser' => 'Réinitialiser le formulaire',
    36         'construire_reinitialiser_confirmer' => 'Vous allez perdre toutes vos modifications. Êtes-vous sûr de vouloir revenir au formulaire initial ?',
    37         'construire_verifications_aucune' => 'Aucune',
    38         'construire_verifications_label' => 'Type de vérification à effectuer',
    39 
    40         // E
    41         'erreur_generique' => 'Il y a des erreurs dans les champs ci-dessous, veuillez vérifier vos saisies',
    42         'erreur_option_nom_unique' => 'Ce nom est déjà utilisé par un autre champ et il doit être unique dans ce formulaire.',
    43 
    44         // I
    45         'info_configurer_saisies' => 'Page de test des Saisies',
    46 
    47         // L
    48         'label_annee' => 'Année',
    49         'label_jour' => 'Jour',
    50         'label_mois' => 'Mois',
    51 
    52         // O
    53         'option_aff_art_interface_explication' => 'Afficher uniquement les articles de la langue de l’utilisateur',
    54         'option_aff_art_interface_label' => 'Affichage multilingue',
    55         'option_aff_langue_explication' => 'Affiche la langue de l’article ou rubrique sélectionné devant le titre',
    56         'option_aff_langue_label' => 'Afficher la langue',
    57         'option_aff_rub_interface_explication' => 'Afficher uniquement les rubriques de la langue de l’utilisateur',
    58         'option_aff_rub_interface_label' => 'Affichage multilingue',
    59         'option_afficher_si_explication' => 'Indiquez les conditions pour afficher le champ en fonction de la valeur des autres champs. L’identifiant des autres champs doit être mis entre <code>@</code>. <br />Exemple <code>@selection_1@=="Toto"</code> conditionne l’affichage du champ à ce que le champ <code>selection_1</code> ait pour valeur <code>Toto</code>.',
    60         'option_afficher_si_label' => 'Affichage conditionnel',
    61         'option_afficher_si_remplissage_explication' => 'Contrairement à la précédente option, celle-ci ne conditionne l’affichage que lors du remplissage du formulaire, pas lors de l’affichage des résultats. Sa syntaxe est la même.',
    62         'option_afficher_si_remplissage_label' => 'Affichage conditionnel lors du remplissage',
    63         'option_attention_explication' => 'Un message plus important que l’explication.',
    64         'option_attention_label' => 'Avertissement',
    65         'option_attribut_title_label' => 'Mettre un attribut title dans le label, contenant la valeur du champ. À utiliser avec modération.',
    66         'option_autocomplete_defaut' => 'Laisser par défaut',
    67         'option_autocomplete_explication' => 'Au chargement de la page, votre navigateur peut pré-remplir le champ en fonction de son historique',
    68         'option_autocomplete_label' => 'Pré-remplissage du champ',
    69         'option_autocomplete_off' => 'Désactiver',
    70         'option_autocomplete_on' => 'Activer',
    71         'option_cacher_option_intro_label' => 'Cacher le premier choix vide',
    72         'option_choix_alternatif_label' => 'Permettre de proposer un choix alternatif',
    73         'option_choix_alternatif_label_defaut' => 'Autre choix',
    74         'option_choix_alternatif_label_label' => 'Label de ce choix alternatif',
    75         'option_choix_destinataires_explication' => 'Un ou plusieurs auteurs parmis lesquels l’utilisateur pourra faire son choix. Si rien n’est sélectionné, c’est l’auteur qui a installé le site qui sera choisi.',
    76         'option_choix_destinataires_label' => 'Destinataires possibles',
    77         'option_class_label' => 'Classes CSS supplémentaires',
    78         'option_cols_explication' => 'Largeur du bloc en nombre de caractères. Cette option n’est pas toujours appliquée car les styles CSS de votre site peuvent l’annuler.',
    79         'option_cols_label' => 'Largeur',
    80         'option_datas_explication' => 'Vous devez indiquez un choix par ligne sous la forme "cle|Label du choix"',
    81         'option_datas_label' => 'Liste des choix possibles',
    82         'option_datas_sous_groupe_explication' => 'Vous devez indiquez un choix par ligne sous la forme "cle|Label" du choix. <br />Vous pouvez indiquer le début d’un sous-groupe sous la forme "*Titre du sous-groupe". Pour finir un sous-groupe vous pouvez en entamez un autre, ou bien mettre une ligne contenant unique "/*".',
    83         'option_defaut_label' => 'Valeur par défaut',
    84         'option_disable_avec_post_explication' => 'Identique à l’option précédente mais poste quand même la valeur dans un champ caché.',
    85         'option_disable_avec_post_label' => 'Désactiver mais poster',
    86         'option_disable_explication' => 'Le champ ne peut plus obtenir le focus.',
    87         'option_disable_label' => 'Désactiver le champ',
    88         'option_erreur_obligatoire_explication' => 'Vous pouvez personnaliser le message d’erreur affiché pour indiquer l’obligation (sinon laisser vide).',
    89         'option_erreur_obligatoire_label' => 'Message d’obligation',
    90         'option_explication_explication' => 'Si besoin, une courte phrase décrivant l’objet du champ.',
    91         'option_explication_label' => 'Explication',
    92         'option_groupe_affichage' => 'Affichage',
    93         'option_groupe_description' => 'Description',
    94         'option_groupe_utilisation' => 'Utilisation',
    95         'option_groupe_validation' => 'Validation',
    96         'option_heure_pas_explication' => 'Lorsque vous utilisez l’horaire, un menu s’affiche pour aider à saisir heures et minutes. Vous pouvez ici choisir l’intervalle de temps entre chaque choix (par défaut 30min).',
    97         'option_heure_pas_label' => 'Intervalle des minutes dans le menu d’aide à la saisie',
    98         'option_horaire_label' => 'Horaire',
    99         'option_horaire_label_case' => 'Permettre de saisir aussi l’horaire',
    100         'option_id_groupe_label' => 'Groupe de mots',
    101         'option_info_obligatoire_explication' => 'Vous pouvez modifier l’indication d’obligation par défaut : <i>[Obligatoire]</i>.',
    102         'option_info_obligatoire_label' => 'Indication d’obligation',
    103         'option_inserer_barre_choix_edition' => 'barre d’édition complète',
    104         'option_inserer_barre_choix_forum' => 'barre des forums',
    105         'option_inserer_barre_explication' => 'Insère une barre d’outils du porte-plume si ce dernier est activé.',
    106         'option_inserer_barre_label' => 'Insérer une barre d’outils',
    107         'option_label_case_label' => 'Label placé à côté de la case',
    108         'option_label_explication' => 'Le titre qui sera affiché.',
    109         'option_label_label' => 'Label',
    110         'option_limite_branche_explication' => 'Limitera le choix à une branche spécifique du site',
    111         'option_limite_branche_label' => 'Limiter à une branche',
    112         'option_maxlength_explication' => 'L’utilisateur ne pourra pas taper plus de caractères que ce nombre.',
    113         'option_maxlength_label' => 'Nombre de caractères maximum',
    114         'option_multiple_explication' => 'L’utilisateur pourra sélectionner plusieurs valeurs',
    115         'option_multiple_label' => 'Sélection multiple',
    116         'option_nom_explication' => 'Un nom informatique qui identifiera le champ. Il ne doit contenir que des caractères alpha-numériques minuscules ou le caractère "_".',
    117         'option_nom_label' => 'Nom du champ',
    118         'option_obligatoire_label' => 'Champ obligatoire',
    119         'option_option_destinataire_intro_label' => 'Label du premier choix vide (lorsque sous forme de liste)',
    120         'option_option_intro_label' => 'Label du premier choix vide',
    121         'option_option_statut_label' => 'Afficher les statuts',
    122         'option_placeholder_label' => 'Placeholder',
    123         'option_pliable_label' => 'Pliable',
    124         'option_pliable_label_case' => 'Le groupe de champs pourra être replié.',
    125         'option_plie_label' => 'Déjà plié',
    126         'option_plie_label_case' => 'Si le groupe de champs est pliable, il sera déjà plié à l’affichage du formulaire.',
    127         'option_previsualisation_explication' => 'Si le porte-plume est activé, ajoute un onglet pour prévisualiser le rendu du texte saisi.',
    128         'option_previsualisation_label' => 'Activer la prévisualisation',
    129         'option_readonly_explication' => 'Le champ peut être lu, sélectionné, mais pas modifié.',
    130         'option_readonly_label' => 'Lecture seule',
    131         'option_rows_explication' => 'Hauteur du bloc en nombre de ligne. Cette option n’est pas toujours appliquée car les styles CSS de votre site peuvent l’annuler.',
    132         'option_rows_label' => 'Nombre de lignes',
    133         'option_size_explication' => 'Largeur du champ en nombre de caractères. Cette option n’est pas toujours appliquée car les styles CSS de votre site peuvent l’annuler.',
    134         'option_size_label' => 'Taille du champ',
    135         'option_statut_label' => 'Statut(s) particulier(s)',
    136         'option_type_choix_plusieurs' => 'Permettre à l’utilisateur de choisir <strong>plusieurs</strong> destinataires.',
    137         'option_type_choix_tous' => 'Mettre <strong>tous</strong> ces auteurs en destinataires. L’utilisateur n’aura aucun choix.',
    138         'option_type_choix_un' => 'Permettre à l’utilisateur de choisir <strong>un seul</strong> destinataire (sous forme de liste déroulante).',
    139         'option_type_choix_un_radio' => 'Permettre à l’utilisateur de choisir <strong>un seul</strong> destinataire (sous forme de liste à puce).',
    140         'option_type_explication' => 'En mode "masqué", le contenu du champ ne sera pas visible.',
    141         'option_type_label' => 'Type du champ',
    142         'option_type_password' => 'Texte masqué lors de la saisie (ex : mot de passe)',
    143         'option_type_text' => 'Normal',
    144         'option_valeur_non_explication' => 'Valeur postée si le checkbox n’est pas sélectionné',
    145         'option_valeur_non_label' => 'Valeur non',
    146         'option_valeur_oui_explication' => 'Valeur postée si le checkbox est sélectionné',
    147         'option_valeur_oui_label' => 'Valeur oui',
    148 
    149         // S
    150         'saisie_auteurs_explication' => 'Permet de sélectionner un ou plusieurs auteurs',
    151         'saisie_auteurs_titre' => 'Auteurs',
    152         'saisie_case_explication' => 'Permet d’activer ou de désactiver quelque chose.',
    153         'saisie_case_titre' => 'Case unique',
    154         'saisie_checkbox_explication' => 'Permet de choisir plusieurs options avec des cases.',
    155         'saisie_checkbox_titre' => 'Cases à cocher',
    156         'saisie_date_explication' => 'Permet de saisir une date ? l’aide d’un calendrier',
    157         'saisie_date_titre' => 'Date',
    158         'saisie_destinataires_explication' => 'Permet de choisir un ou plusieurs destinataires parmis des auteurs pré-sélectionné.',
    159         'saisie_destinataires_titre' => 'Destinataires',
    160         'saisie_email_explication' => 'Permet d’avoir un champ de type email en HTML5.',
    161         'saisie_email_titre' => 'Adresse email',
    162         'saisie_explication_explication' => 'Un texte explicatif général.',
    163         'saisie_explication_titre' => 'Explication',
    164         'saisie_fieldset_explication' => 'Un cadre qui pourra englober plusieurs champs.',
    165         'saisie_fieldset_titre' => 'Groupe de champs',
    166         'saisie_file_explication' => 'Envoi d’un fichier',
    167         'saisie_file_titre' => 'Fichier',
    168         'saisie_hidden_explication' => 'Un champ pré-rempli que l’utilisateur ne pourra pas voir.',
    169         'saisie_hidden_titre' => 'Champ caché',
    170         'saisie_input_explication' => 'Une simple ligne de texte, pouvant être visible ou masquée (mot de passe).',
    171         'saisie_input_titre' => 'Ligne de texte',
    172         'saisie_mot_explication' => 'Un ou plusieurs mots-clés d’un groupe de mot',
    173         'saisie_mot_titre' => 'Mot-clé',
    174         'saisie_oui_non_explication' => 'Oui ou non, c’est clair ? :)',
    175         'saisie_oui_non_titre' => 'Oui ou non',
    176         'saisie_radio_defaut_choix1' => 'Un',
    177         'saisie_radio_defaut_choix2' => 'Deux',
    178         'saisie_radio_defaut_choix3' => 'Trois',
    179         'saisie_radio_explication' => 'Permet de choisir une option parmis plusieurs disponibles.',
    180         'saisie_radio_titre' => 'Boutons radios',
    181         'saisie_selecteur_article' => 'Affiche un navigateur de sélection d’article',
    182         'saisie_selecteur_article_titre' => 'Sélecteur d’article',
    183         'saisie_selecteur_document' => 'Affiche un sélecteur de document',
    184         'saisie_selecteur_document_titre' => 'Sélecteur de document',
    185         'saisie_selecteur_rubrique' => 'Affiche un navigateur de sélection de rubrique',
    186         'saisie_selecteur_rubrique_article' => 'Affiche un navigateur de sélection d’article ou de rubrique',
    187         'saisie_selecteur_rubrique_article_titre' => 'Sélecteur d’article ou rubrique',
    188         'saisie_selecteur_rubrique_titre' => 'Sélecteur de rubrique',
    189         'saisie_selection_explication' => 'Choisir une option dans une liste déroulante.',
    190         'saisie_selection_multiple_explication' => 'Permet de choisir plusieurs options avec une liste.',
    191         'saisie_selection_multiple_titre' => 'Sélection multiple',
    192         'saisie_selection_titre' => 'Liste déroulante',
    193         'saisie_textarea_explication' => 'Un champ de texte sur plusieurs lignes.',
    194         'saisie_textarea_titre' => 'Bloc de texte',
    195 
    196         // T
    197         'titre_page_saisies_doc' => 'Documentation des saisies',
    198         'tous_visiteurs' => 'Tous les visiteurs (même non enregistrés)',
    199         'tout_selectionner' => 'Tout (dé)sélectionner',
    200 
    201         // V
    202         'vue_sans_reponse' => '<i>Sans réponse</i>',
    203 
    204         // Z
    205         'z' => 'zzz'
     10    // B
     11    'bouton_parcourir_docs_article' => 'Parcourir l’article',
     12    'bouton_parcourir_docs_breve' => 'Parcourir la brève',
     13    'bouton_parcourir_docs_rubrique' => 'Parcourir la rubrique',
     14    'bouton_parcourir_mediatheque' => 'Parcourir la médiathèque',
     15
     16    // C
     17    'construire_action_annuler' => 'Annuler',
     18    'construire_action_configurer' => 'Configurer',
     19    'construire_action_deplacer' => 'Déplacer',
     20    'construire_action_dupliquer' => 'Dupliquer',
     21    'construire_action_dupliquer_copie' => '(copie)',
     22    'construire_action_supprimer' => 'Supprimer',
     23    'construire_ajouter_champ' => 'Ajouter un champ',
     24    'construire_ajouter_groupe' => 'Ajouter un groupe',
     25    'construire_attention_enregistrer' => 'N’oubliez pas d’enregistrer vos modifications !',
     26    'construire_attention_modifie' => 'Le formulaire ci-dessous est différent du formulaire initial. Vous avez la possibilité de le réinitialiser à son état avant vos modifications.',
     27    'construire_attention_supprime' => 'Vos modifications comportent des suppressions de champs. Veuillez confirmer l’enregistrement de cette nouvelle version du formulaire.',
     28    'construire_aucun_champs' => 'Il n’y a pour l’instant aucun champ dans ce formulaire.',
     29    'construire_confirmer_supprimer_champ' => 'Voulez-vous vraiment supprimer ce champ ?',
     30    'construire_info_nb_champs_masques' => '@nb@ champ(s) masqué(s) le temps de configurer le groupe.',
     31    'construire_position_explication' => 'Indiquez devant quel autre champ sera placé celui-ci.',
     32    'construire_position_fin_formulaire' => 'À la fin du formulaire',
     33    'construire_position_fin_groupe' => 'À la fin du groupe @groupe@',
     34    'construire_position_label' => 'Position du champ',
     35    'construire_reinitialiser' => 'Réinitialiser le formulaire',
     36    'construire_reinitialiser_confirmer' => 'Vous allez perdre toutes vos modifications. Êtes-vous sûr de vouloir revenir au formulaire initial ?',
     37    'construire_verifications_aucune' => 'Aucune',
     38    'construire_verifications_label' => 'Type de vérification à effectuer',
     39
     40    // E
     41    'erreur_generique' => 'Il y a des erreurs dans les champs ci-dessous, veuillez vérifier vos saisies',
     42    'erreur_option_nom_unique' => 'Ce nom est déjà utilisé par un autre champ et il doit être unique dans ce formulaire.',
     43
     44    // I
     45    'info_configurer_saisies' => 'Page de test des Saisies',
     46
     47    // L
     48    'label_annee' => 'Année',
     49    'label_jour' => 'Jour',
     50    'label_mois' => 'Mois',
     51
     52    // O
     53    'option_aff_art_interface_explication' => 'Afficher uniquement les articles de la langue de l’utilisateur',
     54    'option_aff_art_interface_label' => 'Affichage multilingue',
     55    'option_aff_langue_explication' => 'Affiche la langue de l’article ou rubrique sélectionné devant le titre',
     56    'option_aff_langue_label' => 'Afficher la langue',
     57    'option_aff_rub_interface_explication' => 'Afficher uniquement les rubriques de la langue de l’utilisateur',
     58    'option_aff_rub_interface_label' => 'Affichage multilingue',
     59    'option_afficher_si_explication' => 'Indiquez les conditions pour afficher le champ en fonction de la valeur des autres champs. L’identifiant des autres champs doit être mis entre <code>@</code>. <br />Exemple <code>@selection_1@=="Toto"</code> conditionne l’affichage du champ à ce que le champ <code>selection_1</code> ait pour valeur <code>Toto</code>.',
     60    'option_afficher_si_label' => 'Affichage conditionnel',
     61    'option_afficher_si_remplissage_explication' => 'Contrairement à la précédente option, celle-ci ne conditionne l’affichage que lors du remplissage du formulaire, pas lors de l’affichage des résultats. Sa syntaxe est la même.',
     62    'option_afficher_si_remplissage_label' => 'Affichage conditionnel lors du remplissage',
     63    'option_attention_explication' => 'Un message plus important que l’explication.',
     64    'option_attention_label' => 'Avertissement',
     65    'option_attribut_title_label' => 'Mettre un attribut title dans le label, contenant la valeur du champ. À utiliser avec modération.',
     66    'option_autocomplete_defaut' => 'Laisser par défaut',
     67    'option_autocomplete_explication' => 'Au chargement de la page, votre navigateur peut pré-remplir le champ en fonction de son historique',
     68    'option_autocomplete_label' => 'Pré-remplissage du champ',
     69    'option_autocomplete_off' => 'Désactiver',
     70    'option_autocomplete_on' => 'Activer',
     71    'option_cacher_option_intro_label' => 'Cacher le premier choix vide',
     72    'option_choix_alternatif_label' => 'Permettre de proposer un choix alternatif',
     73    'option_choix_alternatif_label_defaut' => 'Autre choix',
     74    'option_choix_alternatif_label_label' => 'Label de ce choix alternatif',
     75    'option_choix_destinataires_explication' => 'Un ou plusieurs auteurs parmis lesquels l’utilisateur pourra faire son choix. Si rien n’est sélectionné, c’est l’auteur qui a installé le site qui sera choisi.',
     76    'option_choix_destinataires_label' => 'Destinataires possibles',
     77    'option_class_label' => 'Classes CSS supplémentaires',
     78    'option_cols_explication' => 'Largeur du bloc en nombre de caractères. Cette option n’est pas toujours appliquée car les styles CSS de votre site peuvent l’annuler.',
     79    'option_cols_label' => 'Largeur',
     80    'option_datas_explication' => 'Vous devez indiquez un choix par ligne sous la forme "cle|Label du choix"',
     81    'option_datas_label' => 'Liste des choix possibles',
     82    'option_datas_sous_groupe_explication' => 'Vous devez indiquez un choix par ligne sous la forme "cle|Label" du choix. <br />Vous pouvez indiquer le début d’un sous-groupe sous la forme "*Titre du sous-groupe". Pour finir un sous-groupe vous pouvez en entamez un autre, ou bien mettre une ligne contenant unique "/*".',
     83    'option_defaut_label' => 'Valeur par défaut',
     84    'option_disable_avec_post_explication' => 'Identique à l’option précédente mais poste quand même la valeur dans un champ caché.',
     85    'option_disable_avec_post_label' => 'Désactiver mais poster',
     86    'option_disable_explication' => 'Le champ ne peut plus obtenir le focus.',
     87    'option_disable_label' => 'Désactiver le champ',
     88    'option_erreur_obligatoire_explication' => 'Vous pouvez personnaliser le message d’erreur affiché pour indiquer l’obligation (sinon laisser vide).',
     89    'option_erreur_obligatoire_label' => 'Message d’obligation',
     90    'option_explication_explication' => 'Si besoin, une courte phrase décrivant l’objet du champ.',
     91    'option_explication_label' => 'Explication',
     92    'option_groupe_affichage' => 'Affichage',
     93    'option_groupe_description' => 'Description',
     94    'option_groupe_utilisation' => 'Utilisation',
     95    'option_groupe_validation' => 'Validation',
     96    'option_heure_pas_explication' => 'Lorsque vous utilisez l’horaire, un menu s’affiche pour aider à saisir heures et minutes. Vous pouvez ici choisir l’intervalle de temps entre chaque choix (par défaut 30min).',
     97    'option_heure_pas_label' => 'Intervalle des minutes dans le menu d’aide à la saisie',
     98    'option_horaire_label' => 'Horaire',
     99    'option_horaire_label_case' => 'Permettre de saisir aussi l’horaire',
     100    'option_id_groupe_label' => 'Groupe de mots',
     101    'option_info_obligatoire_explication' => 'Vous pouvez modifier l’indication d’obligation par défaut : <i>[Obligatoire]</i>.',
     102    'option_info_obligatoire_label' => 'Indication d’obligation',
     103    'option_inserer_barre_choix_edition' => 'barre d’édition complète',
     104    'option_inserer_barre_choix_forum' => 'barre des forums',
     105    'option_inserer_barre_explication' => 'Insère une barre d’outils du porte-plume si ce dernier est activé.',
     106    'option_inserer_barre_label' => 'Insérer une barre d’outils',
     107    'option_label_case_label' => 'Label placé à côté de la case',
     108    'option_label_explication' => 'Le titre qui sera affiché.',
     109    'option_label_label' => 'Label',
     110    'option_limite_branche_explication' => 'Limitera le choix à une branche spécifique du site',
     111    'option_limite_branche_label' => 'Limiter à une branche',
     112    'option_maxlength_explication' => 'L’utilisateur ne pourra pas taper plus de caractères que ce nombre.',
     113    'option_maxlength_label' => 'Nombre de caractères maximum',
     114    'option_multiple_explication' => 'L’utilisateur pourra sélectionner plusieurs valeurs',
     115    'option_multiple_label' => 'Sélection multiple',
     116    'option_nom_explication' => 'Un nom informatique qui identifiera le champ. Il ne doit contenir que des caractères alpha-numériques minuscules ou le caractère "_".',
     117    'option_nom_label' => 'Nom du champ',
     118    'option_obligatoire_label' => 'Champ obligatoire',
     119    'option_option_destinataire_intro_label' => 'Label du premier choix vide (lorsque sous forme de liste)',
     120    'option_option_intro_label' => 'Label du premier choix vide',
     121    'option_option_statut_label' => 'Afficher les statuts',
     122    'option_placeholder_label' => 'Placeholder',
     123    'option_pliable_label' => 'Pliable',
     124    'option_pliable_label_case' => 'Le groupe de champs pourra être replié.',
     125    'option_plie_label' => 'Déjà plié',
     126    'option_plie_label_case' => 'Si le groupe de champs est pliable, il sera déjà plié à l’affichage du formulaire.',
     127    'option_previsualisation_explication' => 'Si le porte-plume est activé, ajoute un onglet pour prévisualiser le rendu du texte saisi.',
     128    'option_previsualisation_label' => 'Activer la prévisualisation',
     129    'option_readonly_explication' => 'Le champ peut être lu, sélectionné, mais pas modifié.',
     130    'option_readonly_label' => 'Lecture seule',
     131    'option_rows_explication' => 'Hauteur du bloc en nombre de ligne. Cette option n’est pas toujours appliquée car les styles CSS de votre site peuvent l’annuler.',
     132    'option_rows_label' => 'Nombre de lignes',
     133    'option_size_explication' => 'Largeur du champ en nombre de caractères. Cette option n’est pas toujours appliquée car les styles CSS de votre site peuvent l’annuler.',
     134    'option_size_label' => 'Taille du champ',
     135    'option_statut_label' => 'Statut(s) particulier(s)',
     136    'option_type_choix_plusieurs' => 'Permettre à l’utilisateur de choisir <strong>plusieurs</strong> destinataires.',
     137    'option_type_choix_tous' => 'Mettre <strong>tous</strong> ces auteurs en destinataires. L’utilisateur n’aura aucun choix.',
     138    'option_type_choix_un' => 'Permettre à l’utilisateur de choisir <strong>un seul</strong> destinataire (sous forme de liste déroulante).',
     139    'option_type_choix_un_radio' => 'Permettre à l’utilisateur de choisir <strong>un seul</strong> destinataire (sous forme de liste à puce).',
     140    'option_type_explication' => 'En mode "masqué", le contenu du champ ne sera pas visible.',
     141    'option_type_label' => 'Type du champ',
     142    'option_type_password' => 'Texte masqué lors de la saisie (ex : mot de passe)',
     143    'option_type_text' => 'Normal',
     144    'option_valeur_non_explication' => 'Valeur postée si le checkbox n’est pas sélectionné',
     145    'option_valeur_non_label' => 'Valeur non',
     146    'option_valeur_oui_explication' => 'Valeur postée si le checkbox est sélectionné',
     147    'option_valeur_oui_label' => 'Valeur oui',
     148
     149    // P
     150    'plugin_yaml_inactif' => 'Le plugin YAML est inactif. Vous devez l\'activer pour que cette page soit fonctionnelle.',
     151
     152    // S
     153    'saisie_auteurs_explication' => 'Permet de sélectionner un ou plusieurs auteurs',
     154    'saisie_auteurs_titre' => 'Auteurs',
     155    'saisie_case_explication' => 'Permet d’activer ou de désactiver quelque chose.',
     156    'saisie_case_titre' => 'Case unique',
     157    'saisie_checkbox_explication' => 'Permet de choisir plusieurs options avec des cases.',
     158    'saisie_checkbox_titre' => 'Cases à cocher',
     159    'saisie_date_explication' => 'Permet de saisir une date ? l’aide d’un calendrier',
     160    'saisie_date_titre' => 'Date',
     161    'saisie_destinataires_explication' => 'Permet de choisir un ou plusieurs destinataires parmis des auteurs pré-sélectionné.',
     162    'saisie_destinataires_titre' => 'Destinataires',
     163    'saisie_email_explication' => 'Permet d’avoir un champ de type email en HTML5.',
     164    'saisie_email_titre' => 'Adresse email',
     165    'saisie_explication_explication' => 'Un texte explicatif général.',
     166    'saisie_explication_titre' => 'Explication',
     167    'saisie_fieldset_explication' => 'Un cadre qui pourra englober plusieurs champs.',
     168    'saisie_fieldset_titre' => 'Groupe de champs',
     169    'saisie_file_explication' => 'Envoi d’un fichier',
     170    'saisie_file_titre' => 'Fichier',
     171    'saisie_hidden_explication' => 'Un champ pré-rempli que l’utilisateur ne pourra pas voir.',
     172    'saisie_hidden_titre' => 'Champ caché',
     173    'saisie_input_explication' => 'Une simple ligne de texte, pouvant être visible ou masquée (mot de passe).',
     174    'saisie_input_titre' => 'Ligne de texte',
     175    'saisie_mot_explication' => 'Un ou plusieurs mots-clés d’un groupe de mot',
     176    'saisie_mot_titre' => 'Mot-clé',
     177    'saisie_oui_non_explication' => 'Oui ou non, c’est clair ? :)',
     178    'saisie_oui_non_titre' => 'Oui ou non',
     179    'saisie_radio_defaut_choix1' => 'Un',
     180    'saisie_radio_defaut_choix2' => 'Deux',
     181    'saisie_radio_defaut_choix3' => 'Trois',
     182    'saisie_radio_explication' => 'Permet de choisir une option parmis plusieurs disponibles.',
     183    'saisie_radio_titre' => 'Boutons radios',
     184    'saisie_selecteur_article' => 'Affiche un navigateur de sélection d’article',
     185    'saisie_selecteur_article_titre' => 'Sélecteur d’article',
     186    'saisie_selecteur_document' => 'Affiche un sélecteur de document',
     187    'saisie_selecteur_document_titre' => 'Sélecteur de document',
     188    'saisie_selecteur_rubrique' => 'Affiche un navigateur de sélection de rubrique',
     189    'saisie_selecteur_rubrique_article' => 'Affiche un navigateur de sélection d’article ou de rubrique',
     190    'saisie_selecteur_rubrique_article_titre' => 'Sélecteur d’article ou rubrique',
     191    'saisie_selecteur_rubrique_titre' => 'Sélecteur de rubrique',
     192    'saisie_selection_explication' => 'Choisir une option dans une liste déroulante.',
     193    'saisie_selection_multiple_explication' => 'Permet de choisir plusieurs options avec une liste.',
     194    'saisie_selection_multiple_titre' => 'Sélection multiple',
     195    'saisie_selection_titre' => 'Liste déroulante',
     196    'saisie_textarea_explication' => 'Un champ de texte sur plusieurs lignes.',
     197    'saisie_textarea_titre' => 'Bloc de texte',
     198
     199    // T
     200    'titre_page_saisies_doc' => 'Documentation des saisies',
     201    'tous_visiteurs' => 'Tous les visiteurs (même non enregistrés)',
     202    'tout_selectionner' => 'Tout (dé)sélectionner',
     203
     204    // V
     205    'vue_sans_reponse' => '<i>Sans réponse</i>',
     206
     207    // Z
     208    'z' => 'zzz',
    206209);
  • _plugins_/saisies/trunk/paquet.xml

    r106147 r106152  
    3030        <utilise nom="verifier" compatibilite="[1.6.0;]" />
    3131        <utilise nom="spip_bonux" compatibilite="[3.0.0;]" />
     32        <utilise nom="yaml" compatibilite="[1.5.0;]" />
    3233</paquet>
  • _plugins_/saisies/trunk/prive/squelettes/contenu/saisies_doc.html

    r106147 r106152  
    33
    44<B_saisies>
    5         <BOUCLE_saisies (DATA) {source table, #VAL{saisies}|saisies_lister_disponibles}>
     5        <BOUCLE_saisies (DATA) {source table, #VAL{saisies}|saisies_lister_disponibles} {si #VAL{_DIR_PLUGIN_YAML}|defined}>
    66                [(#BOITE_OUVRIR)]
    77                        <h3 id="[saisie_(#CLE)]">[(#ICONE|balise_img) ][(#TITRE)] [((#CLE))]</h3>
     
    3131        </BOUCLE_saisies>
    3232</B_saisies>
     33<:saisies:plugin_yaml_inactif:>
     34<//B_saisies>
  • _plugins_/saisies/trunk/prive/squelettes/navigation/saisies_doc.html

    r106147 r106152  
    22        <div class="navigation">
    33                <ul class="liste_items sous_navigation">
    4                 <BOUCLE_saisies (DATA) {source table, #VAL{saisies}|saisies_lister_disponibles}>
     4                <BOUCLE_saisies (DATA) {source table, #VAL{saisies}|saisies_lister_disponibles} {si #VAL{_DIR_PLUGIN_YAML}|defined}>
    55                                <li class="item"><a href="#[saisie_(#CLE)]" class="bando2_saisie_[(#CLE)]">[(#TITRE)] [((#CLE))]</a></li>
    66                </BOUCLE_saisies>
Note: See TracChangeset for help on using the changeset viewer.