Plugin "Archivage de contenus" - feedback utilisation lister_champs_selection_conditionnelle

Eric Lupinacci <[email protected]>
Newsgroups gmane.comp.web.spip.devel
Message-ID <CAM6W4bafQuAQhzT6xQ9v8Y47YLgi+3JJcZFLb-prr4=h1NY1Mg@mail.gmail.com>
Hello,

J'ai finalisé hier une première version du plugin Archivage de contenus qui
permet enfin, par défaut, de supprimer des affichages de liste d'objets les
objets archivés et, aussi d'afficher les archives uniquement à partir de
ces mêmes liste d'objets.
Pour cela j'ai utilisé le critère {id_?} et le pipeline
lister_champs_selection_conditionnelle.
Voilà mon feedback et quelques idées d'évolutions à discuter.

*Le fonctionnement recherché pour les listes d'objets :*
1- si aucun critère d'archivage n'est précisé (explicite ou implicite via
id_?) je n'affiche pas les objets archivés
2- on doit pouvoir afficher que les objets archivés
3- on doit pouvoir afficher tous les objets archivés ou pas

*Le critère {id_?} et l**e pipeline lister_champs_selection_conditionnelle*
:
En fait, je ne comprends plus le nom maintenant que combiné avec le
pipeline lister_champs_selection_conditionnelle il permet d'insérer un
champ id_xx mais aussi tout autre champ comme mon champ "est_archive" par
exemple.
Il serait peut-être utile de le renommer en rappelant cette aspect pipeline
comme on le fait dans le code HTML ou PHP et donc renommer  aussi le
pipeline qui est assez peu utilisé aujourd'hui.
Un truc du style {pipeline_where}, le "?" étant inutile et qui rappelle le
critère {where} qui est le pendant "statique" du premier (ou
"where_statique", "where_immediat" et "where_dynamique", "where_calcule" et
le pipeline lister_champs_where_dynamique).

Après, lors de la discussion qui a mené à cette implémentation, il avait
été proposé d'appeler une fonction de calcul du critère si elle existe : ce
n'est pas le cas actuellement et ça serait bien de l'introduire car dans
mon cas je suis obligé de capturer a posteriori , via le pipeline
post_boucle, le where calculé par le critère id_ pour le modifier étant
donné qu'il n'introduit pas la valeur par défaut (tout sauf les archives)
si aucune variable "est_archive" n'est définie dans l'environnement.

Néanmoins, le code actuel fonctionne malgré ces désagréments pour les
points 1 et  2 précités et j'obtiens bien soit le critère compilé
{est_archive=0} soit {est_archive=1}.
Par contre, pour le 3 il faudrait que je puisse fournir une valeur
différente de 0 ou 1 à est_archive dans l'appel de la liste de l'objet et
c'est pas hyper propre.
Je n'ai pas encore trouver la façon propre et satsfaisante de le faire.

Donc voilà pour le feedback, ça serait bien de discuter des propositions
précédentes d'évolutions si elles s'avèrent intéressantes ou de me dire si
je me suis totalement fourvoyé et qu'il y a plus simple sans évolution.


++
Eric
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.