[SPIP Zone] Saisie : sélecteur d'article

Salutations la liste.

Je découvre, parmi les saisies fournies par le plugin du même nom, une sympa pour choisir un article. Mais je ne comprends pas pourquoi ça ne retourne pas le id_article choisi… https://contrib.spip.net/Comment-declarer-un-mod
ele-pour-le-plugin-Inserer#forum502935 Comment obtenir juste l’id ; et pour ma culture, où puis-je voir l’usage du result ?

Merci.

salut,

il faut passer par la fonction picker_selected qui retourne un tableau objet|id_objet par exemple si dans un plugin la configuration propose un sélecteur de rubriques nommé « accueil », ensuite dans le squelette on peut récupérer la sélection avec : {id_rubrique IN #CONFIG{monplugin/accueil}|picker_selected{rubrique}} tu trouves ça dans ecrire/inc/filtres_selecteur_generique.php

Salut,

Le 05/11/2019 à 21:02, chankalan@choc0.net a écrit :

Le 05/11/2019 à 20:46, Gildas Cotomale a écrit :

Je découvre, parmi les saisies fournies par le plugin du même nom, une sympa pour choisir un article. Mais je ne comprends pas pourquoi ça ne retourne pas le id_article choisi... https://contrib.spip.net/Comment-declarer-un-mod
ele-pour-le-plugin-Inserer#forum502935 Comment obtenir juste l'id ; et pour ma culture, où puis-je voir l'usage du result ?

il faut passer par la fonction picker_selected qui retourne un tableau objet|id_objet
par exemple si dans un plugin la configuration propose un sélecteur de rubriques nommé "accueil", ensuite dans le squelette on peut récupérer la sélection avec :
{id_rubrique IN #CONFIG{monplugin/accueil}|picker_selected{rubrique}}
tu trouves ça dans ecrire/inc/filtres_selecteur_generique.php

Ah mais merci :slight_smile:

Je ne vous raconte pas les stratagèmes peu glorieux à base de |replace que j'avais mis en place pour y arriver sans cette info !

                     jean marie

Le 05/11/2019 à 21:02, chankalan@choc0.net a écrit :

il faut passer par la fonction picker_selected qui retourne un tableau objet|id_objet
par exemple si dans un plugin la configuration propose un sélecteur de rubriques nommé "accueil", ensuite dans le squelette on peut récupérer la sélection avec :
{id_rubrique IN #CONFIG{monplugin/accueil}|picker_selected{rubrique}}
tu trouves ça dans ecrire/inc/filtres_selecteur_generique.php

Sur la base de cet exemple j'ai commencé une doc pour picker_selected :
https://www.spip.net/ecrire/?exec=article&id_article=6521

L'intégration de picker_selected est mentionnée dans la release log de la 3.0.17
mais j'ai rien trouvé pour les sélecteurs génériques.

Ces sélecteurs génériques dans le noyau, c'est exactement ceux de
https://contrib.spip.net/Selecteur-generique-avec-autocompletion
qui ont été mis dans le noyau ?

JL

Le 06/11/2019 à 12:22, JLuc a écrit :

Le 05/11/2019 à 21:02, chankalan@choc0.net a écrit :

il faut passer par la fonction picker_selected qui retourne un tableau objet|id_objet
par exemple si dans un plugin la configuration propose un sélecteur de rubriques nommé "accueil", ensuite dans le squelette on peut récupérer la sélection avec :
{id_rubrique IN #CONFIG{monplugin/accueil}|picker_selected{rubrique}}
tu trouves ça dans ecrire/inc/filtres_selecteur_generique.php

Sur la base de cet exemple j'ai commencé une doc pour picker_selected :
https://www.spip.net/ecrire/?exec=article&id_article=6521

L'intégration de picker_selected est mentionnée dans la release log de la 3.0.17
mais j'ai rien trouvé pour les sélecteurs génériques.

Ces sélecteurs génériques dans le noyau, c'est exactement ceux de
https://contrib.spip.net/Selecteur-generique-avec-autocompletion
qui ont été mis dans le noyau ?

Le commit initial de rastapopoulos apporte des éléments de réponse :

«
Création d'un sélecteur générique d'objets permettant de naviguer hiérarchiquement si besoin.

Il faut appeler "formulaires/selecteur/generique"
avec à peu près les mêmes options que dans l'ancien picker,
sauf que pour préciser un chemin précis, on ne donne pas {id_article} ou {id_rubrique}
mais {objet=truc} et {id_objet=XX}.

Ensuite il y a des options supplémentaires, dont surtout :
{whitelist=#ARRAY{liste des objets à sélectionner}}
{blacklist=#ARRAY{liste des objets à ne pas ...}}

Le code repose sur le même fonctionnement mais avec plus d'inclusions pour découper et détecter chaque type d'objet.

Pour ajouter un nouvel objet, il suffit de créer :
- obligatoirement : "hierarchie-TYPES.html"
- facultatif : lister-racine-TYPES.html pour lister cet objet à la racine du navigateur (peut très bien être une entrée unique si c'est pas hiérarchique)
- facultatif : lister-TYPES-TYPES.html pour faire la liste des TYPES contenu dans un autre TYPES
- facultatif : lister-TYPES-articles.html pour faire la liste des articles contenu dans un TYPES
- facultatif : lister-rubriques-TYPES.html pour faire la liste des TYPES contenu dans une rubrique
- etc etc... à vous de choisir suivant l'objet !
»

À méditer...

JL

Le mer. 6 nov. 2019 à 09:48, Jean Marie Grall a écrit :

Salut,

Le 05/11/2019 à 21:02, chankalan@choc0.net a écrit :
> Le 05/11/2019 à 20:46, Gildas Cotomale a écrit :
>> Je découvre, parmi les saisies fournies par le plugin du même nom,
>> une sympa pour choisir un article. Mais je ne comprends pas pourquoi
>> ça ne retourne pas le id_article choisi...
>> https://contrib.spip.net/Comment-declarer-un-mod
>> ele-pour-le-plugin-Inserer#forum502935 Comment obtenir juste l'id ;
>> et pour ma culture, où puis-je voir l'usage du result ?

(arf, je ne m'étais pas rendu compte que mon lien était coupé
...toujours bien se relire)

> il faut passer par la fonction picker_selected qui retourne un tableau
> objet|id_objet
> par exemple si dans un plugin la configuration propose un sélecteur de
> rubriques nommé "accueil", ensuite dans le squelette on peut récupérer
> la sélection avec :
> {id_rubrique IN #CONFIG{monplugin/accueil}|picker_selected{rubrique}}
> tu trouves ça dans ecrire/inc/filtres_selecteur_generique.php

Ah mais merci :slight_smile:

Merci également.
Ça n'a pas l'air simple le sélecteur générique... La doc initiée par
JLuc est plus que bienvenue !

Je ne vous raconte pas les stratagèmes peu glorieux à base de |replace
que j'avais mis en place pour y arriver sans cette info !

Intéressant ; je suis curieux de voir des exemples si t'en as encore
sous le coude.
(en tout cas ça montre que plus de gens ont été confronté à ce genre
de problème)

Le 08/11/2019 à 20:18, Gildas Cotomale a écrit :

Le mer. 6 nov. 2019 à 09:48, Jean Marie Grall a écrit :

Je ne vous raconte pas les stratagèmes peu glorieux à base de |replace
que j'avais mis en place pour y arriver sans cette info !

Intéressant ; je suis curieux de voir des exemples si t'en as encore
sous le coude.

C'est un replace avec une regex pour supprimer tout ce qui n'est pas chiffre :

|replace{\[^\d\],''}

Ça ressort uniquement l'id, donc si tu sais que l'objet est forcément un article, peux l'utiliser...

La méthode chankalan est autrement plus propre.

             jean marie