Compositions 1

Un plugin pour bien composer son site

Ce plugin vous permet de définir plusieurs variantes de compositions pour chaque type objet SPIP (article, rubrique, etc.) et de les appliquer simplement, au cas par cas, depuis l’espace privé.

Objectif

Ce plugin a pour but de fournir un mécanisme et une interface pour faire varier le type de composition de chaque objet en fonction des besoins.

Par exemple, vous pouvez avoir besoin de composer certains articles sous une forme d’article de journal, et certains autres comme des albums photos.

Ou vous pouvez vouloir composer certaines rubriques comme des blogs, et d’autres de façon plus classique...

Pour faire varier la composition des objets d’un même type, SPIP met nativement quelques solutions à la disposition des webmestres :

  • les squelettes suffixés par le numéro de rubrique (rubrique-23.html) permettent souvent de s’en tirer, mais présentent de gros défauts : la maintenance squelettes organisés sur ce mode devient vite très lourde, et aucune interface ne permet de changer la composition d’un objet parmi celles existantes une fois qu’elle a été fixée par le webmestre avec un squelette particulier.
  • les mots clés « techniques » utilisés dans les squelettes pour choisir indirectement le type de composition fonctionnent également. Toutefois, l’ergonomie est peu adaptée à cet usage, et si jamais le site utilise aussi des mots clés pour la navigation les administrateurs sont vites perdus.

Le plugin apporte donc une nouvelle fonctionnalité à SPIP.

Fonctionnement du plugin

Le plugin propose un formalisme de définition des compositions et une interface générée automatiquement qui permet aux administrateurs du site de choisir parmi les compositions disponibles.

Par défaut, le squelette qui définit la composition est alors automatiquement sélectionné par SPIP.

Configuration

Le plugin ne nécessite pas CFG, mais si celui-ci est installé vous pourrez modifier certaines options de fonctionnement. Dans le cas contraire, les réglages par défaut seront appliqués.

Dossier des compositions
Ce réglage vous permet de choisir le sous-dossier qui contiendra les différentes compositions. Par défaut le nom de dossier compositions/ est utilisé. C’est-à-dire que les compositions seront recherchées dans squelettes/compositions/, puis dans les sous dossiers compositions/ des plugins, etc.

Compositions des rubriques
Le plugin permet de sélectionner pour chaque rubrique un article d’accueil qui pourra être utilisé par le webmestre pour présenter la rubrique.

#ID_ARTICLE_ACCUEIL désigne l’id_article de l’article sélectionné en accueil.

Cette fonctionnalité peut être désactivée pour ne pas charger l’interface.

Sélection des squelettes
Par défaut, le squelette de la composition est sélectionné automatiquement par SPIP. Mais ce mécanisme est désactivable pour des besoins précis.

Définir des compositions

Une composition est constituée par une paire de fichiers : un squelette et un fichier XML qui l’accompagne et porte le même nom. Leur nom est composé du type de l’objet (article, rubrique ou autre) suivi du nom de la composition séparée par un tiret. Par exemple : article-edito.html et article-edito.xml ou encore rubrique-chronologique.html et rubrique-chronologique.xml.

Les compositions doivent être rangées dans un sous-répertoire de votre dossier squelettes, appelé compositions/ (le nom de ce sous-répertoire est configurable).

Il est possible de définir une composition par défaut pour chaque type d’objet, en la nommant simplement article, rubrique, etc. sans la suffixer.

Pour définir une composition de type portfolio d’un article on va par exemple :

  • créer un squelette compositions/article-portfolio.html,
  • créer à côté un fichier compositions/article-portfolio.xml.

Le squelette sera constitué classiquement de boucles et balises pour réaliser l’affichage de l’article selon le mode de composition qui vous convient. Le fichier XML pourra contenir la description de cette composition :

<composition>
	<nom>Article Portfolio</nom>
	<description>Composition adaptée aux galeries d'images</description>
	<icon>images/article-portfolio.png</icon>
</composition>

Lorsqu’aucune composition n’est définie pour un type d’objet donné, aucune interface n’apparait dans l’espace privé.

Mais lorsque vous avez défini au moins une composition, une interface apparaît et permet aux administrateurs de choisir sur chaque objet la composition qui lui convient parmi celles qui sont définies.

Utilisation avec les squelettes de type Z comme Zpip

Utilisé avec un squelette Z comme le squelette Zpip, et à partir de la version 1.0 du plugin, le fonctionnement par défaut des compositions s’applique au cœur de page (le contenu). Le dossier par défaut pour mettre les compositions est alors contenu/.

Une composition contenu/article-portfolio.html sera alors utilisée à la place de contenu/article.html, le reste de la page étant alors inchangé. Pour plus d’information sur la construction des pages dans le squelette Zpip, voir sa documentation.

ll n’y a donc aucun réglage à faire pour utiliser le plugin Compositions avec Zpip : il suffit de déclarer des compositions dans un dossier contenu/ (dans le dossier squelettes/ par exemple) pour pouvoir les utiliser pour faire varier la présentation du contenu des objets de SPIP.

Utilisation personnalisée dans les squelettes

En dehors des squelettes Z, le fonctionnement du plugin par défaut est de sélectionner automatiquement un squelette, dans son intégralité. Ce mode de fonctionnement oblige donc à définir le squelette en entier pour chaque composition.

Pour une utilisation différente du plugin dans le cadre d’un squelette personnel, et pour utiliser les compositions pour faire varier une partie de la page uniquement, le mécanisme automatique peut être désactivé.

Dans ce cas, la balise #COMPOSITION peut être utilisée dans les squelettes pour inclure la bonne variante de composition dans la partie de la page que le webmestre souhaite faire varier.

Le plugin laisse donc la liberté au webmestre d’utiliser le mécanisme de compositions en fonction de son besoin propre.

#COMPOSITION
Si par exemple, vous souhaitez que le coeur des pages articles change en fonction de la composition choisie (mais les colonnes latérales, l’en-tête et le pied de page seront inchangés), vous remplacerez la partie concernée de article.html par

<INCLURE{fond=#COMPOSITION|compositions_selectionner{article}}{env}>

Cette inclusion doit se trouver dans une boucle article dans ce cas.

#ID_ARTICLE_ACCUEIL
Pour les rubriques, il est possible également d’utilise un article d’accueil.
Si l’option est activée, l’article d’accueil sélectionné depuis l’interface peut simplement être retrouvé avec la balise #ID_ARTICLE_ACCUEIL.

Par exemple

<BOUCLE_marubrique(RUBRIQUES){id_rubrique}>
<BOUCLE_accueil(ARTICLES){id_article=#ID_ARTICLE_ACCUEIL}>
</BOUCLE_accueil>
</BOUCLE_marubrique>

Interface

Lorsque des compositions ont été mises en place par le webmestre, un formulaire de sélection apparait automatiquement dans l’espace privé sur chaque objet de ce type.

Si vous êtes webmestre, vous pouvez verrouiller les compositions que vous ne souhaitez pas laisser modifiables. Seuls les webmestres pourront alors les modifier.


Sur les articles le bloc compositions indique que l’article est sélectionné en accueil

ou permet de le sélectionner pour l’accueil de la rubrique.

ecrire/?exec=compositions
La page exec=compositions permet de lister toutes les compositions disponibles pour chaque type d’objet SPIP, ainsi que tous les objets utilisant chaque composition.

Des icones pour vos compositions
Le plugin intègre dans le sous dossier images/ plusieurs icones simples que vous pouvez utiliser et décliner pour identifier vos compositions. N’hésitez pas à proposer vos variantes pour enrichir le plugin !

Ce plugin nécessite SPIP Bonux

Dernière modification de cette page le 8 février 2019

Discussion

60 discussions

  • 1

    La « composition » de la page d’accueil (squelette sommaire) n’est pas disponible. Y a-t-il une raison à cela ? Est-ce envisagé/envisageable de l’ajouter au plugin ?

    • Le plugin permet de faire varier la composition d’un objet, sous entendu que plusieurs objets différents peuvent nécessiter une composition différente.

      Par nature, la page d’accueil est unique, et faire varier sa composition semble moins évident. Je comprends dans ta demande, qu’en fait le besoin serait de pouvoir avoir plusieurs compositions pré-existantes, et d’en choisir une pour un site donné.

      De ce point de vue, cela à un sens, effectivement. La réponse simple est donc qu’actuellement ce n’est pas prévu, non. C’est sans doute envisageable, oui.

    Répondre à ce message

  • 5

    Question toute bête, pourquoi les vignettes que j’ai créée dans le dossier « /images » ne s’affichent pas ? Le chemin me semble correct pourtant. Est-ce que j’ai oublié une étape importante ?
    Merci

    • Filn, imaginons que ton répertoire « /images » soit dans le répertoire « /squelettes » dans ce cas tu peux mettre :

      squelettes/images/lenomdetonimage.png

    • S’il est dans le repertoire « /plugins » alors :
      plugins/images/lenomdetonimage.png

    • Je tiens à souligner que ce plugin est une merveille et va me pousser à essayer aussi d’en créer un !

      Il apporte une liberté de composition plus clair et plus évidente pour les rédacteurs que le système de « mots-clefs ».

      Bravo à son créateur !

    • ou si le dossier images se trouve dans le dossier composition, qui lui-même est dans squelettes :
      squelettes/compositions/images/image.png

      merci !

    • J’ai fait ça, mais mes icônes ne sont pas affichées. Où sont-elles censées apparaître ?

    Répondre à ce message

  • Bonjour,

    ce plugin est une pure merveille. Je vais l’utiliser en substitution de Squelettes par mots clés. Mais ne pouvant tester encore avant dimanche (je ne suis pas chez moi pour le moment), je voudrais savoir si je sélectionne une composition pour ma rubrique, est ce que les articles de la-dite rubrique auront la même composition sans avoir sélectionné de composition pour l’article ?

    2 - Ou si aucune composition n’est présente pour l’article, est ce bien article.html qui est pris en compte ?

    3 - si un skel article-XX.html est présent, qui prend la main ?

    4 - et pour les sous rubriques, comment cela se passe-t-il ?

    Cordialement,

    Teddy

    Répondre à ce message

  • 1
    Sandrine

    Si comme moi, vous ne comprenez pas pourquoi votre inclusion de composition n’affiche rien, alors que vous avez fait tout comme il faut, et que votre inclusion est un copier-coller du morceau central de votre page article de base, n’oubliez pas ceci : Il faut ajouter, comme sur la page article de base, une boucle .... C’est bête, mais ca peut faire prendre du temps cet oubli !

    • Sandrine

      J’ai cependant une petite question de forme :
      Sur mon bloc Composition (pour un article), le lien Choisir comme article d’accueil apparaît dans un style qui ne va pas du tout avec le reste de la page. Est-ce normal ? Est-ce corrigable et où ? Y a-t-il possibilité de désactiver ce lien si on n’a pas besoin de définir des articles par défaut aux rubriques ?

    Répondre à ce message

  • 4

    impossible à faire fonctionner chez moi,tout se passe bien du côté privé, mais aucun effet sur le site public.
    je suis en spip 2.0.8 avec la dernière mise à jour de spip bonux, j’ai testé chez free et lautre.net avec le même résultat . aurai-je oublié quelques chose à mettre dans mes squelettes ?

    • Plus concrètement, qu’as tu fait ? Tu as mis en place des compositions d’article ? de rubrique ? Comment les as-tu nommées ? ...

    • Mon objectif est de créer une composition blog et une composition gallerie.
      J’ai donc comme fichier rubrique-blog.html, rubrique-gallerie.html, article-gallerie.html et leur pendant xml, rubrique-blog.xml, rubrique-gallerie.xml, article-gallerie.xml, le tout placé dans le dossier squelettes/compositions.
      Pour mes fichier html, je me suis basé sur les squelettes de la dist avec de légère modif et pour les fichier xml, ils sont conçu comme décrit dans l’article

      <composition>
              <nom>Article gallerie photo</nom>
              <description>Composition adaptee aux galeries d'images</description>
              <icon>images/gallerie.png</icon>
      </composition>

      j’ai réglé les paramètres avec cfg et j’ai choisie une rubrique pour le blog et plusieurs articles galerie photo dans l’espace privé, via le mécanisme de compositions et après c’est là que je sèche !

      tu peux voir le site en ligne ici

      merci beaucoup pour ton aide

    • Quelle configuration as-tu changé pour les compositions ?

      Je vois que tu as un rubrique-4.html et un article-4.html. Peut-être sont-ils pris en priorité et du coup empêchent le plugin de fonctionner ? (je n’ai pas testé la cohabitation des deux).

      Tu peux aussi ajouter &var_mode=debug dans ton url pour voir quel squelette est utilisé.

    • bon je vais me flageller sur la place publique, pour n’avoir pas fait ce par quoi j’aurai du commencer avant de venir t’embêter : vérifier mes plugins.

      En effet j’ai désactiver une grande partie de mes plugins histoire de voir et bingo c’est de là que vient le soucis.

      Après vérification, c’est le plugins spipbb qui squizze le mécanisme de « compositions », une fois ôté tout fonctionne correctement.

      pour mes article et rubrique-4 , je les utilise pour la partie wiki avec gribouille et c’est tout à fait compatible avec ton plugin
      merci de ton aide et désolé de t’avoir fait perdre ton temps

    Répondre à ce message

  • Bonjour et merci pour cette pépite.

    Est-ce envisageable d’avoir les mêmes possibilités pour la page d’accueil du site.
    merci.

    Répondre à ce message

  • en effet avec une version à jour de spip bonux il n’y a plus aucun problème, rien à dire c’est un super plugin.

    Encore merci.

    Répondre à ce message

  • 1

    Par contre j’ai un petit pb, j’ai installer spip bonux, cfg et composition sur un spip 2.0.8 et lorsque je suis au niveau d’un article dans la partie privée, au dessus de la liste des compositions disponible j’ai ce code qui traverse la page :
    <:compositions:choisir_article_accueil :>,#URL_ACTION_AUTEURaccueillir_rubrique,#ID_RUBRIQUE-#ID_ARTICLE,#SELF,ajax (entouré d’accolade mais là si je les mets le code est en italique...)

    c’est pas super génant et le plugin fonctionne quand même mais ça doit pas etre normal comme message...

    • Je pense que tu n’a pas une version à jour de Spip-bonux. Mets le à jour, ça devrait aller mieux. Sur l’url de la page qui a le probleme, ajoute &var_mode=recalcul

    Répondre à ce message

  • Arabstrait

    Bonjour,
    Je n’ai pas réussi à le faire fonctionner. Il apparait bien dans Gestion des plugins où j’en ai activé d’autres ( Je suis absolument débutant avec spip et les cms) qui ont fonctionné, bien sur j’ai d’abors installé spip bonux qui a fonctionné....
    Merci de m’informer sur ce qui m’a échappé
    Cordialement
    Mustapha,

    Répondre à ce message

  • Je viens tester ce plugin en speed et c’est vraiment génial, ça simplifie grandement la vie surtout si le site spip n’est pas géré par la personne qui l’a créé. J’attendais le retour du plugin squelette par mot clé pour pouvoir passer certain de mes site en Spip (et en profiter pour les rafraichir) en Spip 2.0.x mais ce plugin correspond encore plus à mes attentes.

    Merci bcp pour cette contrib :D

    Répondre à ce message

Ajouter un commentaire

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom