Browse Source

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

svn/root/tags/v2.18.22
teddy.spip@gmail.com 5 years ago
parent
commit
149e4413dc
  1. 497
      inc/saisies_lister.php
  2. 379
      lang/saisies_fr.php
  3. 1
      paquet.xml
  4. 4
      prive/squelettes/contenu/saisies_doc.html
  5. 2
      prive/squelettes/navigation/saisies_doc.html

497
inc/saisies_lister.php

@ -8,7 +8,7 @@
// Sécurité
if (!defined('_ECRIRE_INC_VERSION')) {
return;
return;
}
/**
@ -20,24 +20,25 @@ if (!defined('_ECRIRE_INC_VERSION')) {
*
* @return array Un tableau avec uniquement les saisies
*/
function saisies_lister_par_identifiant($contenu, $avec_conteneur = true) {
$saisies = array();
if (is_array($contenu)) {
foreach ($contenu as $ligne) {
if (is_array($ligne)) {
$enfants_presents = (isset($ligne['saisies']) and is_array($ligne['saisies']));
if (array_key_exists('saisie', $ligne) and (!$enfants_presents or $avec_conteneur)) {
$saisies[$ligne['identifiant']] = $ligne;
}
if ($enfants_presents) {
$saisies = array_merge($saisies, saisies_lister_par_identifiant($ligne['saisies']));
}
}
}
}
return $saisies;
function saisies_lister_par_identifiant($contenu, $avec_conteneur = true)
{
$saisies = array();
if (is_array($contenu)) {
foreach ($contenu as $ligne) {
if (is_array($ligne)) {
$enfants_presents = (isset($ligne['saisies']) and is_array($ligne['saisies']));
if (array_key_exists('saisie', $ligne) and (!$enfants_presents or $avec_conteneur)) {
$saisies[$ligne['identifiant']] = $ligne;
}
if ($enfants_presents) {
$saisies = array_merge($saisies, saisies_lister_par_identifiant($ligne['saisies']));
}
}
}
}
return $saisies;
}
/**
@ -49,25 +50,26 @@ function saisies_lister_par_identifiant($contenu, $avec_conteneur = true) {
*
* @return array Un tableau avec uniquement les saisies
*/
function saisies_lister_par_nom($contenu, $avec_conteneur = true) {
$saisies = array();
if (is_array($contenu)) {
foreach ($contenu as $ligne) {
if (is_array($ligne)) {
if (array_key_exists('saisie', $ligne)
and (!isset($ligne['saisies']) or !is_array($ligne['saisies']) or $avec_conteneur)
and isset($ligne['options'])) {
$saisies[$ligne['options']['nom']] = $ligne;
}
if (isset($ligne['saisies']) and is_array($ligne['saisies'])) {
$saisies = array_merge($saisies, saisies_lister_par_nom($ligne['saisies']));
}
}
}
}
return $saisies;
function saisies_lister_par_nom($contenu, $avec_conteneur = true)
{
$saisies = array();
if (is_array($contenu)) {
foreach ($contenu as $ligne) {
if (is_array($ligne)) {
if (array_key_exists('saisie', $ligne)
and (!isset($ligne['saisies']) or !is_array($ligne['saisies']) or $avec_conteneur)
and isset($ligne['options'])) {
$saisies[$ligne['options']['nom']] = $ligne;
}
if (isset($ligne['saisies']) and is_array($ligne['saisies'])) {
$saisies = array_merge($saisies, saisies_lister_par_nom($ligne['saisies']));
}
}
}
}
return $saisies;
}
/**
@ -75,67 +77,70 @@ function saisies_lister_par_nom($contenu, $avec_conteneur = true) {
* # saisies_lister_avec_option('sql', $saisies);.
*
*
* @param String $option Nom de l'option cherchée
* @param Array $saisies Liste de saisies
* @param String $tri tri par défaut des résultats (s'ils ne sont pas deja triés) ('nom', 'identifiant')
* @param string $option Nom de l'option cherchée
* @param array $saisies Liste de saisies
* @param string $tri tri par défaut des résultats (s'ils ne sont pas deja triés) ('nom', 'identifiant')
*
* @return liste de ces saisies triees par nom ayant une option X définie
*/
function saisies_lister_avec_option($option, $saisies, $tri = 'nom') {
$saisies_option = array();
// tri par nom si ce n'est pas le cas
$s = array_keys($saisies);
if (is_int(array_shift($s))) {
$trier = 'saisies_lister_par_'.$tri;
$saisies = $trier($saisies);
}
foreach ($saisies as $nom_ou_id => $saisie) {
if (isset($saisie['options'][$option]) and $saisie['options'][$option]) {
$saisies_option[$nom_ou_id] = $saisie;
}
}
return $saisies_option;
function saisies_lister_avec_option($option, $saisies, $tri = 'nom')
{
$saisies_option = array();
// tri par nom si ce n'est pas le cas
$s = array_keys($saisies);
if (is_int(array_shift($s))) {
$trier = 'saisies_lister_par_'.$tri;
$saisies = $trier($saisies);
}
foreach ($saisies as $nom_ou_id => $saisie) {
if (isset($saisie['options'][$option]) and $saisie['options'][$option]) {
$saisies_option[$nom_ou_id] = $saisie;
}
}
return $saisies_option;
}
/**
* Liste les saisies ayant une definition SQL.
*
* @param Array $saisies liste de saisies
* @param String $tri tri par défaut des résultats (s'ils ne sont pas deja triés) ('nom', 'identifiant')
* @param array $saisies liste de saisies
* @param string $tri tri par défaut des résultats (s'ils ne sont pas deja triés) ('nom', 'identifiant')
*
* @return liste de ces saisies triees par nom ayant une option sql définie
*/
function saisies_lister_avec_sql($saisies, $tri = 'nom') {
return saisies_lister_avec_option('sql', $saisies, $tri);
function saisies_lister_avec_sql($saisies, $tri = 'nom')
{
return saisies_lister_avec_option('sql', $saisies, $tri);
}
/**
* Liste les saisies d'un certain type
* Liste les saisies d'un certain type.
*
* @example `$saisies_date = saisies_lister_avec_type($saisies, 'date')`
*
* @param Array $saisies liste de saisies
* @param string $type Type de la saisie
* @param String $tri tri par défaut des résultats (s'ils ne sont pas deja triés) ('nom')
* @param array $saisies liste de saisies
* @param string $type Type de la saisie
* @param string $tri tri par défaut des résultats (s'ils ne sont pas deja triés) ('nom')
*
* @return liste de ces saisies triees par nom
*/
function saisies_lister_avec_type($saisies, $type, $tri = 'nom') {
$saisies_type = array();
// tri par nom si ce n'est pas le cas
$s = array_keys($saisies);
if (is_int(array_shift($s))) {
$trier = 'saisies_lister_par_'.$tri;
$saisies = $trier($saisies);
}
foreach ($saisies as $nom_ou_id => $saisie) {
if ($saisie['saisie'] == $type) {
$saisies_type[$nom_ou_id] = $saisie;
}
}
return $saisies_type;
function saisies_lister_avec_type($saisies, $type, $tri = 'nom')
{
$saisies_type = array();
// tri par nom si ce n'est pas le cas
$s = array_keys($saisies);
if (is_int(array_shift($s))) {
$trier = 'saisies_lister_par_'.$tri;
$saisies = $trier($saisies);
}
foreach ($saisies as $nom_ou_id => $saisie) {
if ($saisie['saisie'] == $type) {
$saisies_type[$nom_ou_id] = $saisie;
}
}
return $saisies_type;
}
/**
@ -147,23 +152,24 @@ function saisies_lister_avec_type($saisies, $type, $tri = 'nom') {
*
* @return array Un tableau avec uniquement les saisies
*/
function saisies_lister_par_type($contenu) {
$saisies = array();
if (is_array($contenu)) {
foreach ($contenu as $ligne) {
if (is_array($ligne)) {
if (array_key_exists('saisie', $ligne) and (!is_array($ligne['saisies']))) {
$saisies[ $ligne['saisie'] ][ $ligne['options']['nom'] ] = $ligne;
}
if (is_array($ligne['saisies'])) {
$saisies = array_merge_recursive($saisies, saisies_lister_par_type($ligne['saisies']));
}
}
}
}
return $saisies;
function saisies_lister_par_type($contenu)
{
$saisies = array();
if (is_array($contenu)) {
foreach ($contenu as $ligne) {
if (is_array($ligne)) {
if (array_key_exists('saisie', $ligne) and (!is_array($ligne['saisies']))) {
$saisies[ $ligne['saisie'] ][ $ligne['options']['nom'] ] = $ligne;
}
if (is_array($ligne['saisies'])) {
$saisies = array_merge_recursive($saisies, saisies_lister_par_type($ligne['saisies']));
}
}
}
}
return $saisies;
}
/**
@ -175,10 +181,11 @@ function saisies_lister_par_type($contenu) {
*
* @return array Un tableau listant les noms des champs
*/
function saisies_lister_champs($contenu, $avec_conteneur = true) {
$saisies = saisies_lister_par_nom($contenu, $avec_conteneur);
function saisies_lister_champs($contenu, $avec_conteneur = true)
{
$saisies = saisies_lister_par_nom($contenu, $avec_conteneur);
return array_keys($saisies);
return array_keys($saisies);
}
/**
@ -190,15 +197,16 @@ function saisies_lister_champs($contenu, $avec_conteneur = true) {
*
* @return array Un tableau de contexte
*/
function saisies_charger_champs($contenu) {
// array_fill_keys est disponible uniquement avec PHP >= 5.2.0
// return array_fill_keys(saisies_lister_champs($contenu, false), '');
$champs = array();
foreach (saisies_lister_champs($contenu, false) as $champ) {
$champs[$champ] = '';
}
return $champs;
function saisies_charger_champs($contenu)
{
// array_fill_keys est disponible uniquement avec PHP >= 5.2.0
// return array_fill_keys(saisies_lister_champs($contenu, false), '');
$champs = array();
foreach (saisies_lister_champs($contenu, false) as $champ) {
$champs[$champ] = '';
}
return $champs;
}
/**
@ -209,22 +217,23 @@ function saisies_charger_champs($contenu) {
*
* @return array Un tableau renvoyant la valeur par défaut de chaque champs
*/
function saisies_lister_valeurs_defaut($contenu) {
$contenu = saisies_lister_par_nom($contenu, false);
$defauts = array();
foreach ($contenu as $nom => $saisie) {
// Si le nom du champ est un tableau indexé, il faut parser !
if (preg_match('/([\w]+)((\[[\w]+\])+)/', $nom, $separe)) {
$nom = $separe[1];
// Dans ce cas on ne récupère que le nom,
// la valeur par défaut du tableau devra être renseigné autre part
$defauts[$nom] = array();
} else {
$defauts[$nom] = isset($saisie['options']['defaut']) ? $saisie['options']['defaut'] : '';
}
}
return $defauts;
function saisies_lister_valeurs_defaut($contenu)
{
$contenu = saisies_lister_par_nom($contenu, false);
$defauts = array();
foreach ($contenu as $nom => $saisie) {
// Si le nom du champ est un tableau indexé, il faut parser !
if (preg_match('/([\w]+)((\[[\w]+\])+)/', $nom, $separe)) {
$nom = $separe[1];
// Dans ce cas on ne récupère que le nom,
// la valeur par défaut du tableau devra être renseigné autre part
$defauts[$nom] = array();
} else {
$defauts[$nom] = isset($saisie['options']['defaut']) ? $saisie['options']['defaut'] : '';
}
}
return $defauts;
}
/**
@ -237,29 +246,30 @@ function saisies_lister_valeurs_defaut($contenu) {
*
* @return array Retourne le tableau des saisies supprimées, ajoutées et modifiées
*/
function saisies_comparer($saisies_anciennes, $saisies_nouvelles, $avec_conteneur = true, $tri = 'nom') {
$trier = "saisies_lister_par_$tri";
$saisies_anciennes = $trier($saisies_anciennes, $avec_conteneur);
$saisies_nouvelles = $trier($saisies_nouvelles, $avec_conteneur);
// Les saisies supprimées sont celles qui restent dans les anciennes quand on a enlevé toutes les nouvelles
$saisies_supprimees = array_diff_key($saisies_anciennes, $saisies_nouvelles);
// Les saisies ajoutées, c'est le contraire
$saisies_ajoutees = array_diff_key($saisies_nouvelles, $saisies_anciennes);
// Il reste alors les saisies qui ont le même nom
$saisies_restantes = array_intersect_key($saisies_anciennes, $saisies_nouvelles);
// Dans celles-ci, celles qui sont modifiées sont celles dont la valeurs est différentes
$saisies_modifiees = array_udiff(array_diff_key($saisies_nouvelles, $saisies_ajoutees), $saisies_restantes, 'saisies_comparer_rappel');
#$saisies_modifiees = array_udiff($saisies_nouvelles, $saisies_restantes, 'saisies_comparer_rappel');
// Et enfin les saisies qui ont le même nom et la même valeur
$saisies_identiques = array_diff_key($saisies_restantes, $saisies_modifiees);
return array(
'supprimees' => $saisies_supprimees,
'ajoutees' => $saisies_ajoutees,
'modifiees' => $saisies_modifiees,
'identiques' => $saisies_identiques,
);
function saisies_comparer($saisies_anciennes, $saisies_nouvelles, $avec_conteneur = true, $tri = 'nom')
{
$trier = "saisies_lister_par_$tri";
$saisies_anciennes = $trier($saisies_anciennes, $avec_conteneur);
$saisies_nouvelles = $trier($saisies_nouvelles, $avec_conteneur);
// Les saisies supprimées sont celles qui restent dans les anciennes quand on a enlevé toutes les nouvelles
$saisies_supprimees = array_diff_key($saisies_anciennes, $saisies_nouvelles);
// Les saisies ajoutées, c'est le contraire
$saisies_ajoutees = array_diff_key($saisies_nouvelles, $saisies_anciennes);
// Il reste alors les saisies qui ont le même nom
$saisies_restantes = array_intersect_key($saisies_anciennes, $saisies_nouvelles);
// Dans celles-ci, celles qui sont modifiées sont celles dont la valeurs est différentes
$saisies_modifiees = array_udiff(array_diff_key($saisies_nouvelles, $saisies_ajoutees), $saisies_restantes, 'saisies_comparer_rappel');
#$saisies_modifiees = array_udiff($saisies_nouvelles, $saisies_restantes, 'saisies_comparer_rappel');
// Et enfin les saisies qui ont le même nom et la même valeur
$saisies_identiques = array_diff_key($saisies_restantes, $saisies_modifiees);
return array(
'supprimees' => $saisies_supprimees,
'ajoutees' => $saisies_ajoutees,
'modifiees' => $saisies_modifiees,
'identiques' => $saisies_identiques,
);
}
/**
@ -270,12 +280,13 @@ function saisies_comparer($saisies_anciennes, $saisies_nouvelles, $avec_conteneu
*
* @return int Retourne 0 si les saisies sont identiques, 1 sinon.
*/
function saisies_comparer_rappel($a, $b) {
if ($a === $b) {
return 0;
} else {
return 1;
}
function saisies_comparer_rappel($a, $b)
{
if ($a === $b) {
return 0;
} else {
return 1;
}
}
/**
@ -287,12 +298,13 @@ function saisies_comparer_rappel($a, $b) {
* @param array $saisies_anciennes Un tableau décrivant des saisies
* @param array $saisies_nouvelles Un autre tableau décrivant des saisies
* @param bool $avec_conteneur Indique si on veut prendre en compte dans la comparaison
* les conteneurs comme les fieldsets
* les conteneurs comme les fieldsets
*
* @return array Retourne le tableau des saisies supprimées, ajoutées et modifiées
*/
function saisies_comparer_par_identifiant($saisies_anciennes, $saisies_nouvelles, $avec_conteneur = true) {
return saisies_comparer($saisies_anciennes, $saisies_nouvelles, $avec_conteneur, 'identifiant');
function saisies_comparer_par_identifiant($saisies_anciennes, $saisies_nouvelles, $avec_conteneur = true)
{
return saisies_comparer($saisies_anciennes, $saisies_nouvelles, $avec_conteneur, 'identifiant');
}
/**
@ -300,30 +312,32 @@ function saisies_comparer_par_identifiant($saisies_anciennes, $saisies_nouvelles
*
* @return array Un tableau listant des saisies et leurs options
*/
function saisies_lister_disponibles($saisies_repertoire = 'saisies') {
static $saisies = null;
if (is_null($saisies)) {
$saisies = array();
$liste = find_all_in_path("$saisies_repertoire/", '.+[.]yaml$');
if (count($liste)) {
foreach ($liste as $fichier => $chemin) {
$type_saisie = preg_replace(',[.]yaml$,i', '', $fichier);
$dossier = str_replace($fichier, '', $chemin);
// On ne garde que les saisies qui ont bien le HTML avec !
if (file_exists("$dossier$type_saisie.html")
and (
is_array($saisie = saisies_charger_infos($type_saisie))
)
) {
$saisies[$type_saisie] = $saisie;
}
}
}
}
return $saisies;
function saisies_lister_disponibles($saisies_repertoire = 'saisies')
{
static $saisies = null;
if (is_null($saisies)) {
$saisies = array();
$liste = find_all_in_path("$saisies_repertoire/", '.+[.]yaml$');
if (count($liste)) {
foreach ($liste as $fichier => $chemin) {
$type_saisie = preg_replace(',[.]yaml$,i', '', $fichier);
$dossier = str_replace($fichier, '', $chemin);
// On ne garde que les saisies qui ont bien le HTML avec !
if (file_exists("$dossier$type_saisie.html")
and (
is_array($saisie = saisies_charger_infos($type_saisie))
)
) {
$saisies[$type_saisie] = $saisie;
}
}
}
}
return $saisies;
}
/**
@ -331,25 +345,27 @@ function saisies_lister_disponibles($saisies_repertoire = 'saisies') {
*
* @return array Un tableau listant des saisies et leurs options
*/
function saisies_groupes_lister_disponibles($saisies_repertoire = 'saisies') {
static $saisies = null;
if (is_null($saisies)) {
$saisies = array();
$liste = find_all_in_path("$saisies_repertoire/", '.+[.]yaml$');
if (count($liste)) {
foreach ($liste as $fichier => $chemin) {
$type_saisie = preg_replace(',[.]yaml$,i', '', $fichier);
$dossier = str_replace($fichier, '', $chemin);
// On ne garde que les saisies qui ont bien le HTML avec !
if (is_array($saisie = saisies_charger_infos($type_saisie, $saisies_repertoire))) {
$saisies[$type_saisie] = $saisie;
}
}
}
}
return $saisies;
function saisies_groupes_lister_disponibles($saisies_repertoire = 'saisies')
{
static $saisies = null;
if (is_null($saisies)) {
$saisies = array();
$liste = find_all_in_path("$saisies_repertoire/", '.+[.]yaml$');
if (count($liste)) {
foreach ($liste as $fichier => $chemin) {
$type_saisie = preg_replace(',[.]yaml$,i', '', $fichier);
$dossier = str_replace($fichier, '', $chemin);
// On ne garde que les saisies qui ont bien le HTML avec !
if (is_array($saisie = saisies_charger_infos($type_saisie, $saisies_repertoire))) {
$saisies[$type_saisie] = $saisie;
}
}
}
}
return $saisies;
}
/**
@ -357,16 +373,17 @@ function saisies_groupes_lister_disponibles($saisies_repertoire = 'saisies') {
*
* @return array Un tableau listant des saisies et leurs options
*/
function saisies_lister_disponibles_sql($saisies_repertoire = 'saisies') {
$saisies = array();
$saisies_disponibles = saisies_lister_disponibles($saisies_repertoire);
foreach ($saisies_disponibles as $type => $saisie) {
if (isset($saisie['defaut']['options']['sql']) and $saisie['defaut']['options']['sql']) {
$saisies[$type] = $saisie;
}
}
return $saisies;
function saisies_lister_disponibles_sql($saisies_repertoire = 'saisies')
{
$saisies = array();
$saisies_disponibles = saisies_lister_disponibles($saisies_repertoire);
foreach ($saisies_disponibles as $type => $saisie) {
if (isset($saisie['defaut']['options']['sql']) and $saisie['defaut']['options']['sql']) {
$saisies[$type] = $saisie;
}
}
return $saisies;
}
/**
@ -376,24 +393,25 @@ function saisies_lister_disponibles_sql($saisies_repertoire = 'saisies') {
*
* @return array Un tableau contenant le YAML décodé
*/
function saisies_charger_infos($type_saisie, $saisies_repertoire = 'saisies') {
if (defined('_DIR_PLUGIN_YAML')) {
include_spip('inc/yaml');
$fichier = find_in_path("$saisies_repertoire/$type_saisie.yaml");
$saisie = yaml_decode_file($fichier);
if (is_array($saisie)) {
$saisie['titre'] = (isset($saisie['titre']) and $saisie['titre'])
? _T_ou_typo($saisie['titre']) : $type_saisie;
$saisie['description'] = (isset($saisie['description']) and $saisie['description'])
? _T_ou_typo($saisie['description']) : '';
$saisie['icone'] = (isset($saisie['icone']) and $saisie['icone'])
? find_in_path($saisie['icone']) : '';
}
} else {
$saisie = array();
}
return $saisie;
function saisies_charger_infos($type_saisie, $saisies_repertoire = 'saisies')
{
if (defined('_DIR_PLUGIN_YAML')) {
include_spip('inc/yaml');
$fichier = find_in_path("$saisies_repertoire/$type_saisie.yaml");
$saisie = yaml_decode_file($fichier);
if (is_array($saisie)) {
$saisie['titre'] = (isset($saisie['titre']) and $saisie['titre'])
? _T_ou_typo($saisie['titre']) : $type_saisie;
$saisie['description'] = (isset($saisie['description']) and $saisie['description'])
? _T_ou_typo($saisie['description']) : '';
$saisie['icone'] = (isset($saisie['icone']) and $saisie['icone'])
? find_in_path($saisie['icone']) : '';
}
} else {
$saisie = array();
}
return $saisie;
}
/**
@ -401,16 +419,17 @@ function saisies_charger_infos($type_saisie, $saisies_repertoire = 'saisies') {
*
* @return array Retourne un tableau contenant les types de saisies qui ne doivent pas utiliser le _base.html commun
*/
function saisies_autonomes() {
$saisies_autonomes = pipeline(
'saisies_autonomes',
array(
'fieldset',
'hidden',
'destinataires',
'explication',
)
);
return $saisies_autonomes;
function saisies_autonomes()
{
$saisies_autonomes = pipeline(
'saisies_autonomes',
array(
'fieldset',
'hidden',
'destinataires',
'explication',
)
);
return $saisies_autonomes;
}

379
lang/saisies_fr.php

@ -2,205 +2,208 @@
// This is a SPIP language file -- Ceci est un fichier langue de SPIP
// Fichier source, a modifier dans svn://zone.spip.org/spip-zone/_plugins_/saisies/trunk/lang/
if (!defined('_ECRIRE_INC_VERSION')) {
return;
return;
}
$GLOBALS[$GLOBALS['idx_lang']] = array(
// B
'bouton_parcourir_docs_article' => 'Parcourir l’article',
'bouton_parcourir_docs_breve' => 'Parcourir la brève',
'bouton_parcourir_docs_rubrique' => 'Parcourir la rubrique',
'bouton_parcourir_mediatheque' => 'Parcourir la médiathèque',
// B
'bouton_parcourir_docs_article' => 'Parcourir l’article',
'bouton_parcourir_docs_breve' => 'Parcourir la brève',
'bouton_parcourir_docs_rubrique' => 'Parcourir la rubrique',
'bouton_parcourir_mediatheque' => 'Parcourir la médiathèque',
// C
'construire_action_annuler' => 'Annuler',
'construire_action_configurer' => 'Configurer',
'construire_action_deplacer' => 'Déplacer',
'construire_action_dupliquer' => 'Dupliquer',
'construire_action_dupliquer_copie' => '(copie)',
'construire_action_supprimer' => 'Supprimer',
'construire_ajouter_champ' => 'Ajouter un champ',
'construire_ajouter_groupe' => 'Ajouter un groupe',
'construire_attention_enregistrer' => 'N’oubliez pas d’enregistrer vos modifications !',
'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.',
'construire_attention_supprime' => 'Vos modifications comportent des suppressions de champs. Veuillez confirmer l’enregistrement de cette nouvelle version du formulaire.',
'construire_aucun_champs' => 'Il n’y a pour l’instant aucun champ dans ce formulaire.',
'construire_confirmer_supprimer_champ' => 'Voulez-vous vraiment supprimer ce champ ?',
'construire_info_nb_champs_masques' => '@nb@ champ(s) masqué(s) le temps de configurer le groupe.',
'construire_position_explication' => 'Indiquez devant quel autre champ sera placé celui-ci.',
'construire_position_fin_formulaire' => 'À la fin du formulaire',
'construire_position_fin_groupe' => 'À la fin du groupe @groupe@',
'construire_position_label' => 'Position du champ',
'construire_reinitialiser' => 'Réinitialiser le formulaire',
'construire_reinitialiser_confirmer' => 'Vous allez perdre toutes vos modifications. Êtes-vous sûr de vouloir revenir au formulaire initial ?',
'construire_verifications_aucune' => 'Aucune',
'construire_verifications_label' => 'Type de vérification à effectuer',
// C
'construire_action_annuler' => 'Annuler',
'construire_action_configurer' => 'Configurer',
'construire_action_deplacer' => 'Déplacer',
'construire_action_dupliquer' => 'Dupliquer',
'construire_action_dupliquer_copie' => '(copie)',
'construire_action_supprimer' => 'Supprimer',
'construire_ajouter_champ' => 'Ajouter un champ',
'construire_ajouter_groupe' => 'Ajouter un groupe',
'construire_attention_enregistrer' => 'N’oubliez pas d’enregistrer vos modifications !',
'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.',
'construire_attention_supprime' => 'Vos modifications comportent des suppressions de champs. Veuillez confirmer l’enregistrement de cette nouvelle version du formulaire.',
'construire_aucun_champs' => 'Il n’y a pour l’instant aucun champ dans ce formulaire.',
'construire_confirmer_supprimer_champ' => 'Voulez-vous vraiment supprimer ce champ ?',
'construire_info_nb_champs_masques' => '@nb@ champ(s) masqué(s) le temps de configurer le groupe.',
'construire_position_explication' => 'Indiquez devant quel autre champ sera placé celui-ci.',
'construire_position_fin_formulaire' => 'À la fin du formulaire',
'construire_position_fin_groupe' => 'À la fin du groupe @groupe@',
'construire_position_label' => 'Position du champ',
'construire_reinitialiser' => 'Réinitialiser le formulaire',
'construire_reinitialiser_confirmer' => 'Vous allez perdre toutes vos modifications. Êtes-vous sûr de vouloir revenir au formulaire initial ?',
'construire_verifications_aucune' => 'Aucune',
'construire_verifications_label' => 'Type de vérification à effectuer',
// E
'erreur_generique' => 'Il y a des erreurs dans les champs ci-dessous, veuillez vérifier vos saisies',
'erreur_option_nom_unique' => 'Ce nom est déjà utilisé par un autre champ et il doit être unique dans ce formulaire.',
// E
'erreur_generique' => 'Il y a des erreurs dans les champs ci-dessous, veuillez vérifier vos saisies',
'erreur_option_nom_unique' => 'Ce nom est déjà utilisé par un autre champ et il doit être unique dans ce formulaire.',
// I
'info_configurer_saisies' => 'Page de test des Saisies',
// I
'info_configurer_saisies' => 'Page de test des Saisies',
// L
'label_annee' => 'Année',
'label_jour' => 'Jour',
'label_mois' => 'Mois',
// L
'label_annee' => 'Année',
'label_jour' => 'Jour',
'label_mois' => 'Mois',
// O
'option_aff_art_interface_explication' => 'Afficher uniquement les articles de la langue de l’utilisateur',
'option_aff_art_interface_label' => 'Affichage multilingue',
'option_aff_langue_explication' => 'Affiche la langue de l’article ou rubrique sélectionné devant le titre',
'option_aff_langue_label' => 'Afficher la langue',
'option_aff_rub_interface_explication' => 'Afficher uniquement les rubriques de la langue de l’utilisateur',
'option_aff_rub_interface_label' => 'Affichage multilingue',
'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>.',
'option_afficher_si_label' => 'Affichage conditionnel',
'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.',
'option_afficher_si_remplissage_label' => 'Affichage conditionnel lors du remplissage',
'option_attention_explication' => 'Un message plus important que l’explication.',
'option_attention_label' => 'Avertissement',
'option_attribut_title_label' => 'Mettre un attribut title dans le label, contenant la valeur du champ. À utiliser avec modération.',
'option_autocomplete_defaut' => 'Laisser par défaut',
'option_autocomplete_explication' => 'Au chargement de la page, votre navigateur peut pré-remplir le champ en fonction de son historique',
'option_autocomplete_label' => 'Pré-remplissage du champ',
'option_autocomplete_off' => 'Désactiver',
'option_autocomplete_on' => 'Activer',
'option_cacher_option_intro_label' => 'Cacher le premier choix vide',
'option_choix_alternatif_label' => 'Permettre de proposer un choix alternatif',
'option_choix_alternatif_label_defaut' => 'Autre choix',
'option_choix_alternatif_label_label' => 'Label de ce choix alternatif',
'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.',
'option_choix_destinataires_label' => 'Destinataires possibles',
'option_class_label' => 'Classes CSS supplémentaires',
'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.',
'option_cols_label' => 'Largeur',
'option_datas_explication' => 'Vous devez indiquez un choix par ligne sous la forme "cle|Label du choix"',
'option_datas_label' => 'Liste des choix possibles',
'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 "/*".',
'option_defaut_label' => 'Valeur par défaut',
'option_disable_avec_post_explication' => 'Identique à l’option précédente mais poste quand même la valeur dans un champ caché.',
'option_disable_avec_post_label' => 'Désactiver mais poster',
'option_disable_explication' => 'Le champ ne peut plus obtenir le focus.',
'option_disable_label' => 'Désactiver le champ',
'option_erreur_obligatoire_explication' => 'Vous pouvez personnaliser le message d’erreur affiché pour indiquer l’obligation (sinon laisser vide).',
'option_erreur_obligatoire_label' => 'Message d’obligation',
'option_explication_explication' => 'Si besoin, une courte phrase décrivant l’objet du champ.',
'option_explication_label' => 'Explication',
'option_groupe_affichage' => 'Affichage',
'option_groupe_description' => 'Description',
'option_groupe_utilisation' => 'Utilisation',
'option_groupe_validation' => 'Validation',
'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).',
'option_heure_pas_label' => 'Intervalle des minutes dans le menu d’aide à la saisie',
'option_horaire_label' => 'Horaire',
'option_horaire_label_case' => 'Permettre de saisir aussi l’horaire',
'option_id_groupe_label' => 'Groupe de mots',
'option_info_obligatoire_explication' => 'Vous pouvez modifier l’indication d’obligation par défaut : <i>[Obligatoire]</i>.',
'option_info_obligatoire_label' => 'Indication d’obligation',
'option_inserer_barre_choix_edition' => 'barre d’édition complète',
'option_inserer_barre_choix_forum' => 'barre des forums',
'option_inserer_barre_explication' => 'Insère une barre d’outils du porte-plume si ce dernier est activé.',
'option_inserer_barre_label' => 'Insérer une barre d’outils',
'option_label_case_label' => 'Label placé à côté de la case',
'option_label_explication' => 'Le titre qui sera affiché.',
'option_label_label' => 'Label',
'option_limite_branche_explication' => 'Limitera le choix à une branche spécifique du site',
'option_limite_branche_label' => 'Limiter à une branche',
'option_maxlength_explication' => 'L’utilisateur ne pourra pas taper plus de caractères que ce nombre.',
'option_maxlength_label' => 'Nombre de caractères maximum',
'option_multiple_explication' => 'L’utilisateur pourra sélectionner plusieurs valeurs',
'option_multiple_label' => 'Sélection multiple',
'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 "_".',
'option_nom_label' => 'Nom du champ',
'option_obligatoire_label' => 'Champ obligatoire',
'option_option_destinataire_intro_label' => 'Label du premier choix vide (lorsque sous forme de liste)',
'option_option_intro_label' => 'Label du premier choix vide',
'option_option_statut_label' => 'Afficher les statuts',
'option_placeholder_label' => 'Placeholder',
'option_pliable_label' => 'Pliable',
'option_pliable_label_case' => 'Le groupe de champs pourra être replié.',
'option_plie_label' => 'Déjà plié',
'option_plie_label_case' => 'Si le groupe de champs est pliable, il sera déjà plié à l’affichage du formulaire.',
'option_previsualisation_explication' => 'Si le porte-plume est activé, ajoute un onglet pour prévisualiser le rendu du texte saisi.',
'option_previsualisation_label' => 'Activer la prévisualisation',
'option_readonly_explication' => 'Le champ peut être lu, sélectionné, mais pas modifié.',
'option_readonly_label' => 'Lecture seule',
'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.',
'option_rows_label' => 'Nombre de lignes',
'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.',
'option_size_label' => 'Taille du champ',
'option_statut_label' => 'Statut(s) particulier(s)',
'option_type_choix_plusieurs' => 'Permettre à l’utilisateur de choisir <strong>plusieurs</strong> destinataires.',
'option_type_choix_tous' => 'Mettre <strong>tous</strong> ces auteurs en destinataires. L’utilisateur n’aura aucun choix.',
'option_type_choix_un' => 'Permettre à l’utilisateur de choisir <strong>un seul</strong> destinataire (sous forme de liste déroulante).',
'option_type_choix_un_radio' => 'Permettre à l’utilisateur de choisir <strong>un seul</strong> destinataire (sous forme de liste à puce).',
'option_type_explication' => 'En mode "masqué", le contenu du champ ne sera pas visible.',
'option_type_label' => 'Type du champ',
'option_type_password' => 'Texte masqué lors de la saisie (ex : mot de passe)',
'option_type_text' => 'Normal',
'option_valeur_non_explication' => 'Valeur postée si le checkbox n’est pas sélectionné',
'option_valeur_non_label' => 'Valeur non',
'option_valeur_oui_explication' => 'Valeur postée si le checkbox est sélectionné',
'option_valeur_oui_label' => 'Valeur oui',
// O
'option_aff_art_interface_explication' => 'Afficher uniquement les articles de la langue de l’utilisateur',
'option_aff_art_interface_label' => 'Affichage multilingue',
'option_aff_langue_explication' => 'Affiche la langue de l’article ou rubrique sélectionné devant le titre',
'option_aff_langue_label' => 'Afficher la langue',
'option_aff_rub_interface_explication' => 'Afficher uniquement les rubriques de la langue de l’utilisateur',
'option_aff_rub_interface_label' => 'Affichage multilingue',
'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>.',
'option_afficher_si_label' => 'Affichage conditionnel',
'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.',
'option_afficher_si_remplissage_label' => 'Affichage conditionnel lors du remplissage',
'option_attention_explication' => 'Un message plus important que l’explication.',
'option_attention_label' => 'Avertissement',
'option_attribut_title_label' => 'Mettre un attribut title dans le label, contenant la valeur du champ. À utiliser avec modération.',
'option_autocomplete_defaut' => 'Laisser par défaut',
'option_autocomplete_explication' => 'Au chargement de la page, votre navigateur peut pré-remplir le champ en fonction de son historique',
'option_autocomplete_label' => 'Pré-remplissage du champ',
'option_autocomplete_off' => 'Désactiver',
'option_autocomplete_on' => 'Activer',
'option_cacher_option_intro_label' => 'Cacher le premier choix vide',
'option_choix_alternatif_label' => 'Permettre de proposer un choix alternatif',
'option_choix_alternatif_label_defaut' => 'Autre choix',
'option_choix_alternatif_label_label' => 'Label de ce choix alternatif',
'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.',
'option_choix_destinataires_label' => 'Destinataires possibles',
'option_class_label' => 'Classes CSS supplémentaires',
'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.',
'option_cols_label' => 'Largeur',
'option_datas_explication' => 'Vous devez indiquez un choix par ligne sous la forme "cle|Label du choix"',
'option_datas_label' => 'Liste des choix possibles',
'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 "/*".',
'option_defaut_label' => 'Valeur par défaut',
'option_disable_avec_post_explication' => 'Identique à l’option précédente mais poste quand même la valeur dans un champ caché.',
'option_disable_avec_post_label' => 'Désactiver mais poster',
'option_disable_explication' => 'Le champ ne peut plus obtenir le focus.',
'option_disable_label' => 'Désactiver le champ',
'option_erreur_obligatoire_explication' => 'Vous pouvez personnaliser le message d’erreur affiché pour indiquer l’obligation (sinon laisser vide).',
'option_erreur_obligatoire_label' => 'Message d’obligation',
'option_explication_explication' => 'Si besoin, une courte phrase décrivant l’objet du champ.',
'option_explication_label' => 'Explication',
'option_groupe_affichage' => 'Affichage',
'option_groupe_description' => 'Description',
'option_groupe_utilisation' => 'Utilisation',
'option_groupe_validation' => 'Validation',
'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).',
'option_heure_pas_label' => 'Intervalle des minutes dans le menu d’aide à la saisie',
'option_horaire_label' => 'Horaire',
'option_horaire_label_case' => 'Permettre de saisir aussi l’horaire',
'option_id_groupe_label' => 'Groupe de mots',
'option_info_obligatoire_explication' => 'Vous pouvez modifier l’indication d’obligation par défaut : <i>[Obligatoire]</i>.',
'option_info_obligatoire_label' => 'Indication d’obligation',
'option_inserer_barre_choix_edition' => 'barre d’édition complète',
'option_inserer_barre_choix_forum' => 'barre des forums',
'option_inserer_barre_explication' => 'Insère une barre d’outils du porte-plume si ce dernier est activé.',
'option_inserer_barre_label' => 'Insérer une barre d’outils',
'option_label_case_label' => 'Label placé à côté de la case',
'option_label_explication' => 'Le titre qui sera affiché.',
'option_label_label' => 'Label',
'option_limite_branche_explication' => 'Limitera le choix à une branche spécifique du site',
'option_limite_branche_label' => 'Limiter à une branche',
'option_maxlength_explication' => 'L’utilisateur ne pourra pas taper plus de caractères que ce nombre.',
'option_maxlength_label' => 'Nombre de caractères maximum',
'option_multiple_explication' => 'L’utilisateur pourra sélectionner plusieurs valeurs',
'option_multiple_label' => 'Sélection multiple',
'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 "_".',
'option_nom_label' => 'Nom du champ',
'option_obligatoire_label' => 'Champ obligatoire',
'option_option_destinataire_intro_label' => 'Label du premier choix vide (lorsque sous forme de liste)',
'option_option_intro_label' => 'Label du premier choix vide',
'option_option_statut_label' => 'Afficher les statuts',
'option_placeholder_label' => 'Placeholder',
'option_pliable_label' => 'Pliable',
'option_pliable_label_case' => 'Le groupe de champs pourra être replié.',
'option_plie_label' => 'Déjà plié',
'option_plie_label_case' => 'Si le groupe de champs est pliable, il sera déjà plié à l’affichage du formulaire.',
'option_previsualisation_explication' => 'Si le porte-plume est activé, ajoute un onglet pour prévisualiser le rendu du texte saisi.',
'option_previsualisation_label' => 'Activer la prévisualisation',
'option_readonly_explication' => 'Le champ peut être lu, sélectionné, mais pas modifié.',
'option_readonly_label' => 'Lecture seule',
'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.',
'option_rows_label' => 'Nombre de lignes',
'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.',
'option_size_label' => 'Taille du champ',
'option_statut_label' => 'Statut(s) particulier(s)',
'option_type_choix_plusieurs' => 'Permettre à l’utilisateur de choisir <strong>plusieurs</strong> destinataires.',
'option_type_choix_tous' => 'Mettre <strong>tous</strong> ces auteurs en destinataires. L’utilisateur n’aura aucun choix.',
'option_type_choix_un' => 'Permettre à l’utilisateur de choisir <strong>un seul</strong> destinataire (sous forme de liste déroulante).',
'option_type_choix_un_radio' => 'Permettre à l’utilisateur de choisir <strong>un seul</strong> destinataire (sous forme de liste à puce).',
'option_type_explication' => 'En mode "masqué", le contenu du champ ne sera pas visible.',
'option_type_label' => 'Type du champ',
'option_type_password' => 'Texte masqué lors de la saisie (ex : mot de passe)',
'option_type_text' => 'Normal',
'option_valeur_non_explication' => 'Valeur postée si le checkbox n’est pas sélectionné',
'option_valeur_non_label' => 'Valeur non',
'option_valeur_oui_explication' => 'Valeur postée si le checkbox est sélectionné',
'option_valeur_oui_label' => 'Valeur oui',
// S
'saisie_auteurs_explication' => 'Permet de sélectionner un ou plusieurs auteurs',
'saisie_auteurs_titre' => 'Auteurs',
'saisie_case_explication' => 'Permet d’activer ou de désactiver quelque chose.',
'saisie_case_titre' => 'Case unique',
'saisie_checkbox_explication' => 'Permet de choisir plusieurs options avec des cases.',
'saisie_checkbox_titre' => 'Cases à cocher',
'saisie_date_explication' => 'Permet de saisir une date ? l’aide d’un calendrier',
'saisie_date_titre' => 'Date',
'saisie_destinataires_explication' => 'Permet de choisir un ou plusieurs destinataires parmis des auteurs pré-sélectionné.',
'saisie_destinataires_titre' => 'Destinataires',
'saisie_email_explication' => 'Permet d’avoir un champ de type email en HTML5.',
'saisie_email_titre' => 'Adresse email',
'saisie_explication_explication' => 'Un texte explicatif général.',
'saisie_explication_titre' => 'Explication',
'saisie_fieldset_explication' => 'Un cadre qui pourra englober plusieurs champs.',
'saisie_fieldset_titre' => 'Groupe de champs',
'saisie_file_explication' => 'Envoi d’un fichier',
'saisie_file_titre' => 'Fichier',
'saisie_hidden_explication' => 'Un champ pré-rempli que l’utilisateur ne pourra pas voir.',
'saisie_hidden_titre' => 'Champ caché',
'saisie_input_explication' => 'Une simple ligne de texte, pouvant être visible ou masquée (mot de passe).',
'saisie_input_titre' => 'Ligne de texte',
'saisie_mot_explication' => 'Un ou plusieurs mots-clés d’un groupe de mot',
'saisie_mot_titre' => 'Mot-clé',
'saisie_oui_non_explication' => 'Oui ou non, c’est clair ? :)',
'saisie_oui_non_titre' => 'Oui ou non',
'saisie_radio_defaut_choix1' => 'Un',
'saisie_radio_defaut_choix2' => 'Deux',
'saisie_radio_defaut_choix3' => 'Trois',
'saisie_radio_explication' => 'Permet de choisir une option parmis plusieurs disponibles.',
'saisie_radio_titre' => 'Boutons radios',
'saisie_selecteur_article' => 'Affiche un navigateur de sélection d’article',
'saisie_selecteur_article_titre' => 'Sélecteur d’article',
'saisie_selecteur_document' => 'Affiche un sélecteur de document',
'saisie_selecteur_document_titre' => 'Sélecteur de document',
'saisie_selecteur_rubrique' => 'Affiche un navigateur de sélection de rubrique',
'saisie_selecteur_rubrique_article' => 'Affiche un navigateur de sélection d’article ou de rubrique',
'saisie_selecteur_rubrique_article_titre' => 'Sélecteur d’article ou rubrique',
'saisie_selecteur_rubrique_titre' => 'Sélecteur de rubrique',
'saisie_selection_explication' => 'Choisir une option dans une liste déroulante.',
'saisie_selection_multiple_explication' => 'Permet de choisir plusieurs options avec une liste.',
'saisie_selection_multiple_titre' => 'Sélection multiple',
'saisie_selection_titre' => 'Liste déroulante',
'saisie_textarea_explication' => 'Un champ de texte sur plusieurs lignes.',
'saisie_textarea_titre' => 'Bloc de texte',
// P
'plugin_yaml_inactif' => 'Le plugin YAML est inactif. Vous devez l\'activer pour que cette page soit fonctionnelle.',
// T
'titre_page_saisies_doc' => 'Documentation des saisies',
'tous_visiteurs' => 'Tous les visiteurs (même non enregistrés)',
'tout_selectionner' => 'Tout (dé)sélectionner',
// S
'saisie_auteurs_explication' => 'Permet de sélectionner un ou plusieurs auteurs',
'saisie_auteurs_titre' => 'Auteurs',
'saisie_case_explication' => 'Permet d’activer ou de désactiver quelque chose.',
'saisie_case_titre' => 'Case unique',
'saisie_checkbox_explication' => 'Permet de choisir plusieurs options avec des cases.',
'saisie_checkbox_titre' => 'Cases à cocher',
'saisie_date_explication' => 'Permet de saisir une date ? l’aide d’un calendrier',
'saisie_date_titre' => 'Date',
'saisie_destinataires_explication' => 'Permet de choisir un ou plusieurs destinataires parmis des auteurs pré-sélectionné.',
'saisie_destinataires_titre' => 'Destinataires',
'saisie_email_explication' => 'Permet d’avoir un champ de type email en HTML5.',
'saisie_email_titre' => 'Adresse email',
'saisie_explication_explication' => 'Un texte explicatif général.',
'saisie_explication_titre' => 'Explication',
'saisie_fieldset_explication' => 'Un cadre qui pourra englober plusieurs champs.',
'saisie_fieldset_titre' => 'Groupe de champs',
'saisie_file_explication' => 'Envoi d’un fichier',
'saisie_file_titre' => 'Fichier',
'saisie_hidden_explication' => 'Un champ pré-rempli que l’utilisateur ne pourra pas voir.',
'saisie_hidden_titre' => 'Champ caché',
'saisie_input_explication' => 'Une simple ligne de texte, pouvant être visible ou masquée (mot de passe).',
'saisie_input_titre' => 'Ligne de texte',
'saisie_mot_explication' => 'Un ou plusieurs mots-clés d’un groupe de mot',
'saisie_mot_titre' => 'Mot-clé',
'saisie_oui_non_explication' => 'Oui ou non, c’est clair ? :)',
'saisie_oui_non_titre' => 'Oui ou non',
'saisie_radio_defaut_choix1' => 'Un',
'saisie_radio_defaut_choix2' => 'Deux',
'saisie_radio_defaut_choix3' => 'Trois',
'saisie_radio_explication' => 'Permet de choisir une option parmis plusieurs disponibles.',
'saisie_radio_titre' => 'Boutons radios',
'saisie_selecteur_article' => 'Affiche un navigateur de sélection d’article',
'saisie_selecteur_article_titre' => 'Sélecteur d’article',
'saisie_selecteur_document' => 'Affiche un sélecteur de document',
'saisie_selecteur_document_titre' => 'Sélecteur de document',
'saisie_selecteur_rubrique' => 'Affiche un navigateur de sélection de rubrique',
'saisie_selecteur_rubrique_article' => 'Affiche un navigateur de sélection d’article ou de rubrique',
'saisie_selecteur_rubrique_article_titre' => 'Sélecteur d’article ou rubrique',
'saisie_selecteur_rubrique_titre' => 'Sélecteur de rubrique',
'saisie_selection_explication' => 'Choisir une option dans une liste déroulante.',
'saisie_selection_multiple_explication' => 'Permet de choisir plusieurs options avec une liste.',
'saisie_selection_multiple_titre' => 'Sélection multiple',
'saisie_selection_titre' => 'Liste déroulante',
'saisie_textarea_explication' => 'Un champ de texte sur plusieurs lignes.',
'saisie_textarea_titre' => 'Bloc de texte',
// V
'vue_sans_reponse' => '<i>Sans réponse</i>',
// T
'titre_page_saisies_doc' => 'Documentation des saisies',
'tous_visiteurs' => 'Tous les visiteurs (même non enregistrés)',
'tout_selectionner' => 'Tout (dé)sélectionner',
// Z
'z' => 'zzz'
// V
'vue_sans_reponse' => '<i>Sans réponse</i>',
// Z
'z' => 'zzz',
);

1
paquet.xml

@ -29,4 +29,5 @@
<utilise nom="verifier" compatibilite="[1.6.0;]" />
<utilise nom="spip_bonux" compatibilite="[3.0.0;]" />
<utilise nom="yaml" compatibilite="[1.5.0;]" />
</paquet>

4
prive/squelettes/contenu/saisies_doc.html

@ -2,7 +2,7 @@
<div class="nettoyeur"></div>
<B_saisies>
<BOUCLE_saisies (DATA) {source table, #VAL{saisies}|saisies_lister_disponibles}>
<BOUCLE_saisies (DATA) {source table, #VAL{saisies}|saisies_lister_disponibles} {si #VAL{_DIR_PLUGIN_YAML}|defined}>
[(#BOITE_OUVRIR)]
<h3 id="[saisie_(#CLE)]">[(#ICONE|balise_img) ][(#TITRE)] [((#CLE))]</h3>
<p>[(#DESCRIPTION)]</p>
@ -30,3 +30,5 @@
[(#BOITE_FERMER)]
</BOUCLE_saisies>
</B_saisies>
<:saisies:plugin_yaml_inactif:>
<//B_saisies>

2
prive/squelettes/navigation/saisies_doc.html

@ -1,7 +1,7 @@
<B_saisies>
<div class="navigation">
<ul class="liste_items sous_navigation">
<BOUCLE_saisies (DATA) {source table, #VAL{saisies}|saisies_lister_disponibles}>
<BOUCLE_saisies (DATA) {source table, #VAL{saisies}|saisies_lister_disponibles} {si #VAL{_DIR_PLUGIN_YAML}|defined}>
<li class="item"><a href="#[saisie_(#CLE)]" class="bando2_saisie_[(#CLE)]">[(#TITRE)] [((#CLE))]</a></li>
</BOUCLE_saisies>
</ul>

Loading…
Cancel
Save