SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

288 Plugins, 197 contribs sur SPIP-Zone, 109 visiteurs en ce moment

Accueil > Squelettes > Outils pour squelettes > Compositions > Compositions 2 et 3

Compositions 2 et 3

25 mars 2011 – par Cerdic, Joseph – 186 commentaires

75 votes

Ce plugin vous permet de définir plusieurs variantes de squelettes (nommées compositions) pour un même type d’objet SPIP. Dans l’espace privé, il est alors possible de choisir, dans un menu déroulant, la composition qu’on veut attribuer à chaque article (ou rubrique, auteur, etc.).

Note de version

Cette nouvelle itération du plugin Compositions apporte la possibilité de définir des héritages par branche. Elle existe en deux versions : Compositions 2 pour la branche SPIP 2.x, et Compositions 3 pour SPIP 3.x.

La fonctionnalité Article d’accueil a été extraite dans un plugin dédié.

Compositions nécessite le plugin Bonux.

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...

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.

Sous SPIP 3, le formulaire de configuration est directement accessible, sans CFG, via le menu Configuration > Compositions.

Utiliser les compositions sur les objets

Sous SPIP 3 uniquement, vous pouvez définir les objets pouvant recevoir des compositions.

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é, contenu/ si vous utilisez Zpip. C’est-à-dire que les compositions seront recherchées dans squelettes/compositions/, puis dans les sous dossiers compositions/ des plugins, etc.

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.

Masquer le formulaire

Vous pouvez masquer le formulaire de Compositions aux utilisateurs n’ayant pas les droits de modifier la composition d’un objet donné afin d’alléger l’interface.

Tout verrouiller

Compositions possède un mécanisme permettant à unE webmaster de verrouiller une composition et/ou les compositions d’une branche. En activant cette option, toutes les compositions seront verrouillées et seul unE webmaster pourra les modifier.

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 :

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

Télécharger

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.

Définir des compositions héritées

Dans le fichier XML d’une composition de rubrique, vous pouvez définir une composition qui s’appliquera par défaut aux objets de la branche (articles, sous-rubriques, brèves...). Il vous suffit d’ajouter dans le XML de la composition une tag de la forme <branche type="objet" composition="nom_composition" />. Par exemple, vous pouvez faire une composition rubrique-agenda avec le XML suivant :

  1. <composition>
  2. <nom>Rubrique Agenda</nom>
  3. <description>Composition pour les rubriques gérant un agenda</description>
  4. <icon>images/objet-liste-contenus-dates.png</icon>
  5. <branche type="article" composition="agenda" />
  6. <branche type="rubrique" composition="agenda" />
  7. </composition>

Télécharger

Les articles de cette rubrique et de ses sous-rubriques hériteront alors de la composition article-agenda.html. Attention : il doit s’agir d’une composition valable et doit donc disposer d’une description dans un fichier article-agenda.xml.

La composition héritée par un objet n’est pas forcément homonyme de la composition de la rubrique. Vous pouvez donc avoir une composition rubrique-machin avec <branche type="article" composition="truc" />. Dans le cas présent, truc fait référence au suffixe de article-truc.html. Le tag <nom></nom> de article-truc.xml reste libre de recevoir le texte de votre choix.

Par ailleurs, il vous est toujours possible de modifier au cas par cas la composition d’un objet donné. Si l’objet hérite d’une composition, l’interface vous proposera donc de lui appliquer la composition héritée ou bien de lui appliquer une autre composition de votre choix.

La composition par défaut d’un objet n’ayant pas de nom (puisqu’il s’agit du squelette correspondant au nom de l’objet sans suffixe), on pourra l’indiquer dans le tag <branche /> à l’aide d’un tiret (composition="-").

Si les rubriques parentes d’un objet définissent plusieurs compositions héritées, c’est la composition définit par la rubrique la plus proche qui s’appliquera.

Prenons un exemple concret. Supposons un secteur A ayant trois sous-rubriques A1, A2 et A3. La composition appliquée au secteur A attribue aux articles de ce secteur la composition truc (<branche type="article" composition="truc" />). Par ailleurs, on a appliqué à la sous-rubrique A3 une composition attribuant aux articles de sa branche la composition par défaut (<branche type="article" composition="-" />). Les articles des rubriques A, A1 et A2 seront alors affichés avec le squelette article-truc.html alors que ce sera article.html qui sera utilisé pour les articles de la rubrique A3 [1].

Verrouiller les compositions

Par défaut, les individus ayant le droit de modifier le contenu d’un objet ont le droit de modifier sa composition. Cependant, si vous êtes webmaster, vous pouvez verrouiller une composition. Cette dernière ne sera alors plus modifiable que par un webmaster.

Si vous êtes dans une rubrique, vous pouvez verrouiller la composition de tous les objets de cette branche (sous-rubriques, articles, brèves, sites, etc.).

Enfin, dans la configuration de Compositions, vous pouvez également verrouiller toutes les compositions.

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.

L’interface peut différer selon vos réglages afin de n’afficher que les options s’appliquant à votre situation.

Utilisation avec les squelettes de type Z comme Zpip

Utilisé avec un squelette Z comme le squelette Zpip (version 1.7.10 minimum), 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 avec le noiZetier

Si vous utilisez Compositions avec le plugin noiZetier, vous pouvez créer des compositions directement dans l’interface de SPIP. Une fois créées, il vous reste seulement à modifier les noisettes de votre composition pour disposer d’un affichage alternatif pour vos objets.

Pour plus d’informations, voir Les compositions du noiZetier.

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.

La balise #COMPOSITION tient compte des héritages éventuels s’appliquant à un objet. Il est donc impératif de s’appuyer sur cette dernière et non sur la valeur du champ composition des tables SQL pour connaître la composition s’appliquant à un objet. Elle doit être appelée au sein d’une boucle.

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

Si par exemple, vous souhaitez que le cœur 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.

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 !

ImageCode à utiliser
<icon>images/objet-simple.png</icon>
<icon>images/objet-liste-contenus.png</icon>
<icon>images/objet-liste-contenus-dates.png</icon>
<icon>images/composition-cours.png</icon>
<icon>images/composition-tableau.png</icon>
<icon>images/composition-test.png</icon>

Voir en ligne : http://plugins.spip.net/compositions

Notes

[1Sauf bien sûr si une composition a été attribuée spécifiquement et au cas par cas pour certains de ces articles.

Dernière modification de cette page le 24 octobre 2017

Retour en haut de la page

Tout afficher

Vos commentaires

  • Le 6 décembre 2013 à 18:08, par myodes En réponse à : Compositions 2 et 3

    Bonjour,

    Est-il possible d’utiliser Compositions sur un objet mot-clef ? J’ai essayé avec la syntaxe suivante, mot-XX.xml et mot-XX.html mais le menu de choix n’apparait pas sur la page des mot-clefs.

    • Le 11 décembre 2013 à 07:24, par jpcrea En réponse à : Compositions 2 et 3

      Bonjour,
      Dans la configuration du plugin, on peut choisir le type d’objet avec lequel on veut l’utiliser...
      CDLT

    • Le 12 décembre 2013 à 07:38, par myodes En réponse à : Compositions 2 et 3

      Bonjour,

      C’est ce que j’ai fait dans la configuration du plugin.
      Le sous-menu « Composition » n’apparait pas dans la page mot-clef. Autrement dit pour les articles, j’ai bien le sous-menu mais pas pour les mots-clefs.

    • Le 6 novembre à 12:56, par jpcrea En réponse à : Compositions 2 et 3

      Bonjour,
      Effectivement, je viens de m’en rendre compte.
      Je suis un gros consommateur de compositions et je n’en avais, jusqu’à ce jour, jamais eu besoin avec les mots-clés.

      Avez-vous depuis tout ce temps résolu la question ?
      Merci.

    Répondre à ce message

  • Le 11 août à 17:30, par Mike En réponse à : Compositions 2 et 3

    Bonjour, et merci pour ce joli plug-in.
    D’abord voici la configuration dans laquelle je travaille : spipr + menus + compositions (récemment).

    J’ai une question concernant les fonctionnalités et l’histoire de ce module :
    Il est indiqué que « compositions 1 » contenait la fonctionnalité « d’article d’acceuil ». Cette fonctionnalité a-t-elle disparue de « compositions 2 et 3 » ? Cela signifie-t-il que si la fonctionnalité d’article d’acceuil doit être utilisée aussi, il faut aussi installer de plug-in ? (par exemple, compositions 2 ou 3 peut-il être paramétré pour remplir les fonctions de l’article d’acceuil aussi ?).

    En vous remerciant,
    Mike

    Répondre à ce message

  • Le 4 juillet à 17:12, par antoine En réponse à : Compositions 2 et 3

    Bonjour,
    Merci pour ce plugin.

    Mais est-il possible de modifier la composition des previews d’articles et non pas l’article en lui même ? (Vous savez sans l’accueil il y a la liste des articles cliquables et c’est ça que j’aimerai changer).
    Je travaille avec le plugin Moulinette et j’aurais besoin de modifier la composition de ces preview pour afficher des images qui prennent la moitié de l’écran par exemple.

    Merci bien :)

    • Le 4 juillet à 17:16, par antoine En réponse à : Compositions 2 et 3

      J’ai trouvé.
      Dans mon cas il fallait créer un fichier dans squelettes/inclure/ du nom de « article-moulinette.html » et modifier son code à sa guise :)
      En revanche je n’ai pas réussis à le faire grâce au plugin compositions..

    • Le 4 juillet à 17:32, par Joseph En réponse à : Compositions 2 et 3

      Une composition est une caractéristique de l’article lui-même, indépendamment de son statut (publié ou en cours de rédaction).

    • Le 5 juillet à 08:47, par antoine En réponse à : Compositions 2 et 3

      Par preview d’article j’entendais des bouts d’articles avec un bouton « lire la suite » si l’article est trop gros.

    Répondre à ce message

  • Le 7 avril à 08:56, par Pascal Engelmajer En réponse à : Compositions 2 et 3

    Bonjour,
    je pense avoir suivi le mode d’emploi, maisl’interface du plugin composition n’apparaît pas...
    Avez-vous une idée pour me dépanner...
    Cordialement

    Répondre à ce message

  • Le 9 février à 17:07, par alexis En réponse à : Compositions 2 et 3

    Attention, quand on utilise z-core, le dossier par défaut est « content »

    Répondre à ce message

  • Le 20 avril 2013 à 10:40, par benolaos En réponse à : Compositions 2 et 3

    Bonjour,

    je tiens à signaler ce que je crois reconnaître comme un bug.
    En cherchant à afficher des vignettes plus grandes (des 64x64 au lieu de 24x24) dans l’espace privé, j’ai modifié le fichier

    inc-selecteur_composition.html

    Cherchant à le rapatrier dans mon dossier squelette (pour une possible mise à jour), je remarque qu’il n’est pas pris en compte. Serait-ce un bug ?

    (Entre parenthèse, ce serait peut-être bien d’ajouter une option de paramétrage des vignettes d’illustration comme c’est le cas pour d’autres plugins...)

    • Le 21 avril 2013 à 19:07, par Joseph En réponse à : Compositions 2 et 3

      Le fichier inc-selecteur_composition.html personnalisé est-il bien dans le répertoire squelettes/formulaires/ ? (il faut respecter le chemin relatif).

    • Le 30 janvier 2016 à 09:30, par benolaos En réponse à : Compositions 2 et 3

      Bonjour Joseph,
      Avec à peine 3 ans de retard, je confirme qu’en respectant le chemin relatif, ça marche.
      Merci.

      Par contre, pour aller un peu plus loin dans la personnalisation (sous SPIP 3.1 tout du moins, par exemple pour afficher des icônes 64x64), pour l’image affichée pour la composition par défaut :
      -  Originellement :

      1. (#ICON|sinon{#CHEMIN_IMAGE{composition-24.png}}|image_reduire{24,24}|inserer_attribut{class,logo})


      -  Changement (si on veut placer la nouvelle image par défaut dans le dossier compositions :

      1. (#ICON|sinon{#CHEMIN{squelettes/compositions/composition-defaut-64.png}}|image_reduire{64,64}|inserer_attribut{class,logo})

      On voit qu’il faut rajouter « squelettes » au #CHEMIN (ce qui n’est peut-être pas normal, mais cela fonctionne).

    • Le 1er février à 12:40, par beno En réponse à : Compositions 2 et 3

      A l’attention de ceux qui ont la vue qui baissent,
      1 an après, voilà la solution pour afficher de plus grandes vignettes :

      Dans le plugin, rechercher « formulaires/inc-selecteur_composition.html », le rapatrier sous son squelette (dans le dossier formulaires, comme de bien entendu), et modifier le 24,24 par 64,64 ou quoique ce soit. Ne pas oublier de faire des icônes de taille appropriées dans le dossier compositions ;-)

    • Le 1er février à 12:47, par beno En réponse à : Compositions 2 et 3

      Pour que ça soit plus visuel... voilà le résultat.

    Répondre à ce message

  • Le 7 décembre 2016 à 15:39, par Teenoo En réponse à : Compositions 2 et 3

    Bonjour,

    j’ai un petit soucis de critère dans une boucle. Pas moyen de spécifier plusieurs compositions à ne pas faire figurer.

    1. <BOUCLE_rub_timeline(RUBRIQUES){racine}{composition !IN clinique, forum, agenda, mediatheque} >

    Ça ne fonctionne pas, tout comme l’opérateur != ou faire une séparation de critère pour chaque composition. Une idée ?

    Répondre à ce message

  • Le 10 mars 2016 à 16:33, par Paulo En réponse à : Compositions 2 et 3

    Je crée un site avec z-core et compositions. Au départ, mes compositions ne donnaient rien sur mes pages. En lisant les commentaires, j’en ai déduis une solution qui fonctionne, créer à la racine de mon squelette des fichiers pour chaque objet concerné.

    Un fichier article.html à la racine du squelette avec :

    1. <BOUCLE_principale_article(ARTICLES){id_article}>
    2. <INCLURE{fond=structure,env,id_rubrique=#ENV{id_rubrique,#ID_RUBRIQUE},id_secteur=#ID_SECTEUR,type-page=article,composition=#COMPOSITION} />
    3. </BOUCLE_principale_article>

    Télécharger

    Un fichier rubrique.html à la racine du squelette avec :

    1. <BOUCLE_principale_rubrique(RUBRIQUES){id_rubrique}>
    2. <INCLURE{fond=structure,env,id_rubrique=#ENV{id_rubrique,#ID_RUBRIQUE},id_secteur=#ID_SECTEUR,type-page=rubrique,composition=#COMPOSITION} />
    3. </BOUCLE_principale_rubrique>

    Télécharger

    Ça marche mais ma question est simplement est-ce une méthode orthodoxe ? Est-ce normal d’avoir à faire cela dans ce contexte(z-core 2.5.0, compositions 3.5.3) ?

    Merci de toute précision.

    • Le 6 décembre 2016 à 21:48, par RealET En réponse à : Compositions 2 et 3

      Moi aussi j’ai dû faire ça.

      SPIP 3.1.4dev + Compositions + ZCore + SPIPr-dist + BS3 + plugin de squelette spécifique

    Répondre à ce message

  • Le 15 septembre 2016 à 20:19, par Cécile En réponse à : Compositions 2 et 3

    Bonjour

    Dans : Utilisation personnalisée dans les squelettes
    « 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é. »

    Qu’est ce que le mécanisme automatique et comment le désactiver ?

    Merci

    Répondre à ce message

  • Le 28 juillet 2016 à 11:45, par Béat En réponse à : Compositions 2 et 3

    Bonjour,

    Sur un site en Z (ZpipR) je voudrais utiliser Compositions. Si j’ai bien compris, avec une configuration Z on ne peut opérer que sur un fichier, par exemple rubrique.html dans le dossier content.

    Or, pour le même effet, je voudrais modifier aussi le fichier rubrique.html situé dans le dossier aside. (Et peut-être aussi le fichier article.html dans le dossier content…)

    Cela est-il possible et comment ?

    Merci de vos lumières.

    Béat

    Répondre à ce message

Répondre à cet article

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 Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Escal-V3 et Escal-V4

    16 février 2012 – 289 commentaires

    Un jeu de squelettes proposant un affichage en 2 ou 3 colonnes avec un large choix de noisettes à insérer ou pas, fortement paramétrable depuis l’espace privé. Présentation A l’instar de sa petite soeur plugin Escal-V2 dont elle reprend toutes les (...)

  • oEmbed

    4 décembre 2013 – 133 commentaires

    C’est quoi ce truc ? oEmbed est un protocole ouvert qui permet d’insérer le contenu d’une page web dans une autre page. Le contenu inséré peut être de plusieurs types : photo, vidéo, URL ou extrait HTML. L’échange d’information a lieu entre un site (...)

  • Tablesorter pour SPIP

    6 juillet 2009 – 33 commentaires

    Avec tableSorter, le tri sera top ! [1]

  • Sitemap d’actualités

    18 décembre – commentaire

    Ce plugin fournit un fichier sitemap dédié aux actualités du site. Pour que les articles soient acceptés dans un agrégateur comme Google Actualités, il faut déclarer un fichier Sitemap conforme à certains critères précis : Contenus agés de moins de 2 (...)

  • Mailsubscribers

    16 janvier 2013 – 341 commentaires

    Ce plugin permet de gérer les inscriptions (ou abonnements) à la diffusion de contenu par email. Mailsubscribers permet de gérer les inscriptions par Opt-in simple ou double et la désinscription par URL. Ce plugin gère également plusieurs listes de (...)