Carnet Wiki

Compositions : suggestions d’évolutions

Version 7 — Juillet 2010 — 78.120.xx.xx

Il manque une fonctionnalité au plugin Composition : la possibilité d’appliquer une composition par défaut aux articles d’une même rubrique. Cela afin d’éviter au rédacteur d’avoir à appliquer lui-même la composition requise (par exemple, pour des articles d’actualités). La composition par défaut des articles serait choisie par le webmestre depuis le formulaire de choix des compositions de la rubrique. Elle serait appliquée aux articles futurs et dans l’idéal, le webmestre devrait avoir le choix de l’appliquer ou pas aux articles existants (comme c’est le cas lors du choix de fonctionnement des forums).

Si une composition différente devait être choisie dans le formulaire de saisie de la composition de l’article, celle-ci remplacerait la composition par défaut.

L’idée est de respecter le principe du plugin qui veut que la composition de chaque objet SPIP (article, rubrique, ...) se voit attribuer une composition en fonction de la valeur du champ « composition » de sa table [1] (le plugin rajoute automatiquement ce champ aux tables spip_articles et spip_rubriques à son installation). Il ne faut pas détourner ce principe en essayant par exemple d’appliquer la contribution par défaut des articles à partir de la valeur de la composition de la rubrique (autrement dit, que le la composition par défaut des champ « composition » de spip_rubrique). Ce principe qui fonctionne pour le plugin « Squelettes par mots clés » ne conviendrait pas ici (ce plugin permet d’appliquer un squelette à des articles en attribuant un mot clé à leur rubrique).

On utiliserait donc un nouveau champ « composition_articles » dans spip_rubriques qui permettrait d’appliquer la composition par défaut des nouveaux articles d’une rubrique donnée. Le choix de la composition par défaut entrainerait donc la mise à jour de ce champ et éventuellement du champ « composition » dans la table spip_articles pour les articles existants (en fonction du choix du webmestre, comme indiqué plus haut).

Le mécanisme de création d’un nouvel article devra donc consulter la valeur du champ « composition-articles » dans spip_rubriques pour l’affecter au champ « composition » de spip_articles.

Ce qu’il faut faire :

  • Faire en sorte que le champ « composition_articles » soit créé dans spip_rubriques à l’installation (ou la mise à jour) du plugin (mise à jour de base/compositions.php ) => FAIT
  • Modifier les fichiers du formulaire d’affichage du choix de la composition d’un objet editer_composition_objet.html et editer_composition_objet.php pour afficher le formulaire de choix de la composition par défaut des articles de la rubrique. => FAIT
  • Modifier l’affichage de la composition de l’article pour ajouter l’indication comme quoi une des compositions est éventuellement une composition par défaut.
  • Modifier compositions_pipeline.php pour rajouter le pipeline composition_pre_insertion permettant d’appliquer l’éventuelle composition par défaut aux articles nouvellement créés. Déclarer le pipeline pre_insertion dans plugin.xml. En fait, pre_insertion n’a été implémenté qu’à partir de la version 2.1 de SPIP et ne fonctionne pas à moins de retirer une virgule à la fin de la déclaration du pipeline dans /ecrire/action/editer_article.php ...
    ).
    -* Modifier plugin.xml pour indiquer qu’au minimum la version 2.1 de SPIP est requise . => FAIT
  • Modifier compositions_fr.php et compositions_es.php pour rajouter le titre du formulaire du choix de la composition par défaut (nouveau fichier de langue « label_composition_articles »). => FAIT

Il manque également au plugin la possibilité de consulter sur une page de l’espace privé la liste des compositions disponibles et les articles/rubriques/autres objets auxquels ces compostions ont été attribuées.