Bonjour
Je voudrais faire un sélecteur de rubrique limité à une branche, et je ne trouve pas comment récupérer la valeur choisie.
Pour l’instant, j’utilise
[(#VAL|chercher_rubrique{#ENV{id_article},#ENV{id_parent},'article',#ENV{id_secteur}})]
Cela fonctionne très bien, mais renvoie l’ensemble des rubriques. Après un coup d’œil sur le code, je m’aperçois que la limite par branche n’existe pas (seulement limite liée aux admins restreints)
Lorsque je tente
#SAISIE{selecteur_rubrique, id_parent, limite_branche=XX}
Le sélecteur est exactement ce que je cherche, avec uniquement la branche sélectionnée.
Mon souci est que je ne réussis pas à récupérer la valeur id_rubrique.
[(#ID_RUBRIQUE|picker_selected{id_parent}|table_valeur{0})]
Je pense avoir lu l’ensemble de la doc sur |picker_selected, mais j’ai dû rater quelque chose. En tout cas, il y a forcément un truc que je n’ai pas compris.
Merci de m’éclairer
Salut,
si c’est via un plugin, tu dois pouvoir utiliser #CONFIG{monplugin/accueil}|picker_selected{rubrique}, c’est le dernier exemple de la doc https://www.spip.net/fr_article6521.html
C’est ce qui est fait ici par ex https://git.spip.net/spip-contrib-squelettes/html5up_twenty/-/blob/master/inclure/sommaire-rubrique-focus.html?ref_type=heads#L13
Merci
Non, ce n’est pas dans un plugin, mais dans un squelette ‹ normal › où le rédacteur doit pouvoir déplacer son article en page publique.
Le résultat de la saisie est donné par :
<ul class="item_picked select">
<li class="rubrique">
<input type="hidden" name="id_parent[]" value="rubrique|XX">
</li></ul>
Je pense me retourner vers un script pour la récupérer, mais j’ai l’impression de passer à côté d’un truc… 
Réussi… ou pas?
En écoutant l’événement du sélecteur, je récupère la bonne valeur. 
<script>
$( "#selecteur" ).on( "click", function() {
setTimeout(function() {
var valeur = $("#selecteur .item_picked input").attr("value");
$("input#id_rubrique").attr("value", valeur.split("|")[1]);
} ,1000);
} );
</script>
et la modification de la page est OK :
<input type="hidden" name="id_rubrique" id="id_rubrique" value="7">
Mais le POST du formulaire ne prend pas en compte la nouvelle valeur. C’est à dire que id_rubrique garde sa valeur d’origine. 
J’utilise le formulaire standard modifier_article en remplacant
(#VAL|chercher_rubrique{#ENV{id_article},#ENV{id_parent},'article',#ENV{id_secteur},#ENV{config/restreint},0,form_simple})
par
<input type='hidden' name='id_rubrique' id='id_rubrique'value="[(#ENV{id_parent})]" />
<div id="selecteur" class='ajax'>#SAISIE{selecteur_rubrique, id_parent, limite_branche=4}</div>
Je ne vois rien dans le php qui bloque le fonctionnement.