[spip-dev] Plugin "Archivage de contenus"

Hello,

Comme convenu j’ai développé un nouveau plugin permettant l’archivage de contenu en utilisant des champs distincts du statut (préfixe archobjet).
Je n’ai pas utilisé une branche du plugin Archive existant pour ne pas foutre la zone chez les utilisateurs le temps de mettre à jour le plugin.
Si besoin, je pourrais merger tout ça le temps venu en renommant le préfixe etc.

On choisit les types d’objet archivables et quelques autres paramètres si besoin et ça roule, on peut archiver les contenus qui disparaissent de fait des boucles (utilisation d’un pipeline pre_boucle).
Le champ est_archive prend les valeurs 0 (non archivé ou désarchivé) ou 1 (archivé).
On peut aussi utiliser le critère {archive} ou {!archive} pour faire la même chose.
Un petit bouton dans la boite d’infos archive ou désarchive le contenu. Le contenu archivé à un message en fond rose dans sa fiche.

Tout cela fonctionne très bien mais j’arrive maintenant à ce qui me pose problème.
Si je veut afficher la liste des contenus archivés ou voir les listes existantes avec les archives je ne vois pas comment faire.
Chaque objets propose en général un fichier prive/objets/liste/ qui inclut des critères prédéfinis et je ne vois pas comment activer le critère {archive} ou {est_archive=1} sans modifier le fichier lui-même ou créer un fichier prive/objets/liste/_archives.
Je me demande d’ailleurs si c’est pas la raison de l’utilisation du statut in fine.

Après je trouve que ce mécanisme devrait être une base dans SPIP et même si le plugin Archivage de contenus était un plugin dist, prévoir son insertion un peu comme pour Mots.
Mais sinon, voyez vous une façon de faire ?

Relancer le chantier qu'avait commencé James d'ajouter un pipeline pre_compilation permettant de modifier la demande même d'une boucle précise d'un squelette précis avant même que ce soit compilé ?

Pour au contraire pouvoir VIRER {id_mot?} du core, et pouvoir l'ajouter par le plugin, et pareil pour taaaant d'autres besoins. Déjà qu'on voudrait virer pour les mots, ça serait pas pour se rajouter des nouvelles dépendances dans le core. :slight_smile:

Tiens, ce serait top pour le tri par rang ça aussi :wink:

Hello,

Normalement tous les fichiers de liste ont un {where?} et donc tu peux passer à l’inclusion un argument where=‘est_archive=1’ pour afficher le contenu archive, ou bien where=‘est_archive=0’ ou encore un where=‘est_archive>=0’ pour tout avoir

Yop,

Re,

Regarde déjà en 3.3-dev cela : critere_id__dist()

https://core.spip.net/projects/spip/repository/entry/spip/ecrire/public/criteres.php#L1598

Critere {id_?} et pipeline `lister_champs_selection_conditionnelle`

Je sais pas si c’est une bonne idée, mais c’est en tout cas possible.

MM.

Oui je viens juste de lire le code.

Ça devrait marcher mais je comprends pas trop le nom du critère :grin: