Indiquez l’intérêt que vous portez à cette question
0

Lister toutes les valeurs uniques d’un Champs Extras de type sélection multiple

Bonjour,

En vue de filtrer les articles à afficher dans une rubrique, je souhaite sélectionner une valeur issue d’un Champs Extras de type sélection multiple via un "form".

En soit, ce n’est pas très compliqué à faire, mais je voudrais que dans mon filtre, n’apparaissent que les valeurs uniques du Champs Extras qui sont utilisées dans les articles de la rubrique dans laquelle je me trouve. Et là je bute malheureusement...

Pour mieux comprendre mon problème, j’ai schématisé ce que je cherche à faire via l’image en lien (résultat espéré tout à droite) : https://i.imgur.com/Jf7ZPCb.png

Je suis novice et j’ai vraiment du mal avec la manipulation des tableaux dans SPIP (#SET, #GET, #ARRAY, etc.).

En faisant des tests empiriques, j’ai réussi à lister dans un "tableau" toutes les valeurs, avec malgré tout des doublons et la valeur nulle "" que je ne voudrais pas faire apparaître... Le code ci-après ainsi que le résultats obtenu

<B_foo>
<BOUCLE_foo(ARTICLES){id_rubrique}{branche}>
#SET{boo, #LISTER_VALEURS{support}|explode{', '}}
[(#GET{boo}|foreach|unique)]
</BOUCLE_foo>
</B_foo>
0=>
0=> label 1
1=> label 7
0=> label 1
0=> label 22
0=> label 42
0=> label 6
0=> label 1
1=> label 6
0=> label 9
0=> label 18
0=> label 1
1=> label 14
0=> label 18
0=> label 14
0=> label 22

Donc dans un premier temps, si quelqu’un a une piste pour me permettre d’afficher la liste des valeurs uniques de mon champ extra sans la valeur nulle ? Pour rappel, mon Champs Extra est de type "sélection multiple" (d’où le explode dans mon test).

L’étape suivante sera ensuite que j’intègre cette liste dans mon formulaire sur la base du modèle suivant je pense (fonctionne pour un champs extra de type "liste déroulante" :

<select name="contenu_art" id="contenu_select">
	<option value="">Sélectionner un contenu</option>
	<BOUCLE_contenu_art(ARTICLES){id_rubrique}{branche}{par num titre}{fusion (type_contenu)}>
	<option VALUE="[(#LISTER_VALEURS{type_contenu})]"[(#ENV{contenu_art}|=={[(#LISTER_VALEURS{type_contenu})]}|?{' selected="selected"',''})]>[(#LISTER_VALEURS{type_contenu})]</option>
	</BOUCLE_contenu_art>
</select>

Merci par avance pour vos éventuelles pistes de réflexion.