Browse Source

Suite discussion il y a longtemps avec @tcharlss sur IRC : mutualiser le

code de selection et selection_multiple :
  - selection_multiple devient obsolète
  - une option pour la saisie selection pour la rendre multiple
  - on change légèrement le libellé de sélection : "Liste déroulante (ou
  sélection)"
fix #52
pull/82/head
Maïeul 2 years ago
parent
commit
8d881f9e77
  1. 8
      inc/saisies_lister.php
  2. 2
      lang/saisies_fr.php
  3. 4
      saisies-vues/selection.html
  4. 4
      saisies/selection.html
  5. 6
      saisies/selection.yaml
  6. 1
      saisies/selection_multiple.yaml

8
inc/saisies_lister.php

@ -428,7 +428,7 @@ function saisies_autonomes() {
/**
* La saisie renvoie t-elle un tableau?
* note: on teste saisie par saisie, et non pas type de saisie par type de saisie, car certaine type (Evenements par ex) peut, en fonction des options, être tabulaire ou pas.
* note: on teste saisie par saisie, et non pas type de saisie par type de saisie, car certaine type (`selection` par ex.) peut, en fonction des options, être tabulaire ou pas.
* @param $saisie
* @return return bool true si la saisie est tabulaire, false sinon
**/
@ -436,7 +436,11 @@ function saisies_saisie_est_tabulaire($saisie) {
if (in_array($saisie['saisie'], array('checkbox', 'selection_multiple'))) {
$est_tabulaire = true;
} else {
$est_tabulaire = false;
if ($saisie['saisie'] === 'selection' and isset($saisie['options']['multiple']) and $saisie['options']['multiple']) {
$est_tabulaire = true;
} else {
$est_tabulaire = false;
}
}
return pipeline('saisie_est_tabulaire',
array('args' => $saisie, 'data' => $est_tabulaire)

2
lang/saisies_fr.php

@ -246,7 +246,7 @@ Vous trouverez la <a href="https://contrib.spip.net/5080" target="_blank" rel="n
'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_selection_titre' => 'Liste déroulante (ou sélection)',
'saisie_textarea_explication' => 'Un champ de texte sur plusieurs lignes.',
'saisie_textarea_titre' => 'Bloc de texte',
'saisies_aplatir_tableau_montrer_groupe' => '@groupe@ : @valeur@',

4
saisies-vues/selection.html

@ -1,6 +1,10 @@
[(#REM) data peut être une chaine qu'on sait décomposer ]
<BOUCLE_simple(CONDITION){si #ENV{multiple}|non}>
#SET{data, #ENV*{data, #ENV*{datas}}|saisies_chaine2tableau|saisies_aplatir_tableau}
[(#ENV{cle_ou_valeur,valeur}|=={cle}|?{
[<p>(#ENV{valeur})</p>],
[<p>(#GET{data/#ENV{valeur}})</p>]
})]
</BOUCLE_simple>
<INCLURE{fond=saisies-vues/selection_multiple,env} />
<//B_simple>

4
saisies/selection.html

@ -12,6 +12,7 @@
- defaut : valeur par defaut si pas présente dans l'environnement
- valeur_forcee : valeur utilisee meme si une valeur est dans l'environnement
- disable_choix : liste de valeurs à désactiver, séparées par des virgules
- multiple: permettre une selection multiple
Exemples d'appels
pour une liste simple :
@ -41,8 +42,7 @@
#SET{disabled, #ARRAY}
[(#ENV{disable_choix}|strlen|oui) #SET{disabled, #ENV{disable_choix}|explode{','}}]
<select [(#HTML5|oui)[(#ENV{obligatoire}|et{#ENV{obligatoire}|!={non}}|oui) required="required"]] name="#ENV{nom}" id="champ_[(#ENV{id,#ENV{nom}}|saisie_nom2classe)]"[ class="(#ENV{class})"][ disabled="(#ENV{disable})"][ size="(#ENV{size})"][ (#ENV*{attributs})]>
<select [(#HTML5|oui)[(#ENV{obligatoire}|et{#ENV{obligatoire}|!={non}}|oui) required="required"]] name="#ENV{nom}[(#ENV{multiple}|?{\[\],''})]" id="champ_[(#ENV{id,#ENV{nom}}|saisie_nom2classe)]"[ class="(#ENV{class})"][ disabled="(#ENV{disable})"][ size="(#ENV{size})"][ (#ENV*{attributs})][ multiple="(#ENV{multiple})"]>
[(#ENV{cacher_option_intro}|non)<option value="">[(#ENV{option_intro})]</option>]
<BOUCLE_selection(POUR){tableau #GET{data}}>

6
saisies/selection.yaml

@ -54,6 +54,12 @@ options:
label: '<:saisies:option_option_intro_label:>'
size: 50
afficher_si: '!@cacher_option_intro@'
-
saisie: 'case'
options:
nom: 'multiple'
label_case: '<:saisies:saisie_selection_multiple_titre:>'
conteneur_class: 'pleine_largeur'
-
saisie: 'fieldset'
options:

1
saisies/selection_multiple.yaml

@ -2,6 +2,7 @@
titre: '<:saisies:saisie_selection_multiple_titre:>'
description: '<:saisies:saisie_selection_multiple_explication:>'
icone: 'images/saisies_selection_multiple.png'
obsolete: true
categorie:
type: 'choix'
options:

Loading…
Cancel
Save