Carnet Wiki

Compositions : suggestions d’évolutions

Il manque une fonctionnalité au plugin Composition : la possibilité d’appliquer automatiquement une composition par défaut aux articles d’une rubrique et 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.

La composition par défaut est choisie par le webmestre depuis le formulaire de choix des compositions de la rubrique. Elle est automatiquement appliquée à la création des nouveaux articles. Le webmestre doit avoir le choix de l’appliquer ou pas aux articles existants (comme c’est le cas lors du choix de fonctionnement des forums).

Le webmestre a toujours la possibilité de choisir pour chaque article une composition différente de 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 sera pas utilisé (ce plugin permet d’appliquer un squelette à des articles en attribuant un mot clé à leur rubrique).

On utilise un nouveau champ “composition_articles” dans spip_rubriques qui permet de stocker la valeur de la composition par défaut. Le choix de la composition par défaut entraine 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 doit donc consulter la valeur du champ “composition-articles” dans spip_rubriques pour l’affecter au champ “composition” de spip_articles.

Cas d’utilisation

  • Le webmestre choisit une composition par défaut dans le formulaire prévu à cet effet sur la page de la rubrique dans l’espace privé : le champ “composition_articles” de spip_rubrique est mis à jour ainsi que les champs “compositions” des articles. Un choix est proposé pour appliquer la mise à jour pour tous les articles ou seulement aux articles qui utilisent la composition par défaut. Par exemple, si la composition par défaut des articles est “actualité” et que tous les articles ont cette composition par défaut sauf un seul qui utilise la composition “portfolio”, si le webmestre veut appliquer une nouvelle composition par défaut “”.

Fait / A 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, editer_composition_objet.php, inc-selecteur_composition.html et inc-informeur_composition.html pour :
    • Afficher sous le choix de la composition des rubriques, un nouveau formulaire de choix de la composition par défaut des articles de la rubrique. => FAIT
    • Afficher dans le formulaire de choix de la composition d’un article une indication comme quoi une des compositions est éventuellement la composition par défaut des articles de la rubrique. => FAIT
  • 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 ... => FAIT
  • 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
  • => A FAIRE Appliquer une composition aux articles de la branche (et aux sous-rubriques ?)
  • => A FAIRE Verrouiller indépendamment la composition de la rubrique et la composition par défaut ?

[1Sauf dans le cas où la case “Ne pas utiliser la sélection automatique. La sélection est prise en charge par mes squelettes” a été cochée sur la page de configuration du plugin, auquel cas c’est le mécanisme de sélection des squelettes par défaut de SPIP qui est appliqué.

Jean-Baptiste Pressac - Mise à jour :2 August 2010 at 21:48