saisie- selection ou radio

J’ai plusieurs listes de parametres techniques comme par exemple une liste EVOLUTIVE de CSS disponibles.

1- enregistrement des parametres dans config sous forme

cadre,toto,tata,titi etc

cela fonctionne bien

2- sélection d’un style dans l’interface privé sous cette forme ou forme php …

[(#SET{lesstyles, #ARRAY})]
#SET{lesstyles, #CONFIG{parametrage_pages/css}|explode{’,’}}

[(#SAISIE{selection, css_composant,
label=<:selection:champ_css_composant_label:>,
explication=<:selection:champ_css_composant_explication:>,
data=#GET{lesstyles}
})]

cela fonctionne mais c’est la clé qui s’enregistre alors que je voudrais enregistrer le nom du style c’est a dire la valeur et non la clé .

avec [(#GET{lesstyles}|table_valeur{#CSS_COMPOSANT})] j’ai bien mon style mais si on modifie l’ordre des styles ou insere un style au milieu , je perd ma valeur.

y at-il un moyen d’enregistrer/ afficher la valeur avec saisie.

est-ce qu’avec saisie sous forme PHP c’est possible ?

  1. Ton problème n’est pas spécifiquement lié à « saisie en php » ou « saisies en squelette », c’est un problème de structure logique des tableaux
  2. Là le problème que tu as, c’est que tu a un tableau qui est de type <clé numerique> => <valeur>, et que ta clé numérique est construit automatiquement lorsque tu explode ton #CONFIG{parametrage_pages/css}. Donc forcément la clé numérique associé à un css n’est jamais stable.
  3. par définition on enregistre toujours la clé (informatique) plutot que la valeur humaine, car la clé est plus stable, en general.
  4. Donc il faut que tu revois la manière dont tu construit ta variable lesstyles (tu devrais aussi le revoir si tu avais écrit cela en php
  5. Algorithmiquement, il faut que tu procéder en deux temps
    a. Faire ton explode pour obtenir l’ensemble des valeurs possibles
    b. Parcourir l’ensemble des valeurs pour créer un tableau où la clé et la valeur sont identiques.

Ce qui donne en squelette

#SET{lesstyles,#ARRAY}
<BOUCLE_lesstyles(POUR){tableau #CONFIG{parametrage_pages/css}|explode{’,’}}>
#SET{lesstyles,#GET{lesstyles}|array_push{#VALEUR,#VALEUR}}
</BOUCLE_lesstyles>

(Attention je n’ai pas testé, pas impossible qu’il y erreur de syntaxe).

merci beaucoup

entre temps j’avais fait une copie de selection.html et j’avais introduit un parametre valeur= oui pour enregistrer la valeur au lieu de a clé mais ta solution est plus logique. Je vais donc l’adopter.

Message du 23/05/21 17:53
De : « Maïeul Rouquette via Discuter de SPIP » noreply@discuter.spip.net
A : josiane.aletto@orange.fr
Copie à :
Objet : [SPIP][spip] saisie- selection ou radio

Maïeul Rouquette maieul
> Mai 23
  1. Ton problème n’est pas spécifiquement lié à « saisie en php » ou « saisies en squelette », c’est un problème de structure logique des tableaux
  2. Là le problème que tu as, c’est que tu a un tableau qui est de type <clé numerique> => , et que ta clé numérique est construit automatiquement lorsque tu explode ton #CONFIG{parametrage_pages/css}. Donc forcément la clé numérique associé à un css n’est jamais stable.
  3. par définition on enregistre toujours la clé (informatique) plutot que la valeur humaine, car la clé est plus stable, en general.
  4. Donc il faut que tu revois la manière dont tu construit ta variable lesstyles (tu devrais aussi le revoir si tu avais écrit cela en php
  5. Algorithmiquement, il faut que tu procéder en deux temps

    a. Faire ton explode pour obtenir l’ensemble des valeurs possibles
    b. Parcourir l’ensemble des valeurs pour créer un tableau où la clé et la valeur sont identiques.

Ce qui donne en squelette

#SET{lesstyles,#ARRAY}

<BOUCLE_lesstyles(POUR){tableau #CONFIG{parametrage_pages/css}|explode{’,’}}>

#SET{lesstyles,#GET{lesstyles}|array_push{#VALEUR,#VALEUR}}

(Attention je n’ai pas testé, pas impossible qu’il y erreur de syntaxe).


Voir le sujet ou répondre à ce courriel pour répondre.

Pour se désabonner de ces courriels, cliquez ici.

–J’y suis arrivé de 2 manières ( syntaxe ok)

solution 1

#SET{latable,#ARRAY}
#SET{latable,#CONFIG{parametrage_pages/css}|explode{‹ , ›}}
[(#SET{lesstyles, #ARRAY})]
<BOUCLE_doublecss(DATA){source table,#GET{latable}}>
[(#SET{lesstyles,#GET{lesstyles}|array_merge{#ARRAY{#VALEUR,#VALEUR}}})]
</BOUCLE_doublecss>

[(#SAISIE{selection, css_composant,
label=<:selection:champ_css_composant_label:>,
explication=<:selection:champ_css_composant_explication:>,
data=#GET{lesstyles}
})]

solution 2

une copie de saisie selection.html dans mon plugin en rajoutant le test sur une option valeur

[(#ENV{valeur}|=={oui}}|oui) #SET{lacle,#VALEUR}]

#VALEUR

Message du 23/05/21 17:53
De : « Maïeul Rouquette via Discuter de SPIP » noreply@discuter.spip.net
A : josiane.aletto@orange.fr
Copie à :
Objet : [SPIP][spip] saisie- selection ou radio

Maïeul Rouquette maieul
> Mai 23
  1. Ton problème n’est pas spécifiquement lié à « saisie en php » ou « saisies en squelette », c’est un problème de structure logique des tableaux
  2. Là le problème que tu as, c’est que tu a un tableau qui est de type <clé numerique> => , et que ta clé numérique est construit automatiquement lorsque tu explode ton #CONFIG{parametrage_pages/css}. Donc forcément la clé numérique associé à un css n’est jamais stable.
  3. par définition on enregistre toujours la clé (informatique) plutot que la valeur humaine, car la clé est plus stable, en general.
  4. Donc il faut que tu revois la manière dont tu construit ta variable lesstyles (tu devrais aussi le revoir si tu avais écrit cela en php
  5. Algorithmiquement, il faut que tu procéder en deux temps

    a. Faire ton explode pour obtenir l’ensemble des valeurs possibles
    b. Parcourir l’ensemble des valeurs pour créer un tableau où la clé et la valeur sont identiques.

Ce qui donne en squelette

#SET{lesstyles,#ARRAY}

<BOUCLE_lesstyles(POUR){tableau #CONFIG{parametrage_pages/css}|explode{’,’}}>

#SET{lesstyles,#GET{lesstyles}|array_push{#VALEUR,#VALEUR}}

(Attention je n’ai pas testé, pas impossible qu’il y erreur de syntaxe).


Voir le sujet ou répondre à ce courriel pour répondre.

Pour se désabonner de ces courriels, cliquez ici.

en règle général, je te déconseillerai la surcharge des saisies, qui ne te permettra pas de profiter des éventuelles futures corrections et amélioration.