[SPIP Zone] Compositions

Bonjour,
malgré mes propos récents, je viens de publier le plugin Compositions sur la zone
http://zone.spip.org/trac/spip-zone/browser/plugins/stable/compositions
et sur spip-contrib
http://www.spip-contrib.net/Compositions

En deux mots, ce plugin offre une interface et une api pour permettre au webmestre de définir des types de compositions sur chaque objet natif de SPIP (mais aussi sur n'importe quel objet ajouté par un plugin du moment qu'il contient le champ 'composition').

C'est une alternative assez performante au plugin 'squelette par mots clés' ou à l'utilisation de squelettes comme rubrique=23.html

Pour ceux qui ont suivi, cela ressemble aussi aux objets typés de James (James si tu m'entends ...)
http://zone.spip.org/trac/spip-zone/log/plugins/dev/objets_types

Historiquement on a développé chacun une idée semblable en parallèle (je suis le fautif car je n'ai pas travaillé sur la zone) à peu près en même temps.
Depuis j'ai eu le loisir à travers plusieurs application de murir le concept et de l'améliorer, et je pense qu'il atteint un niveau de polyvalence suffisant pour correspondre à plein d'usages assez récurents.

En l'état il lui manque encore la fonctionnalité équivalente à rubrique-23/article-23 qui permet d'appliquer un squelette donné dans toute une branche. C'est surtout une histoire d'interface à trouver pour faire cela de façon élégante plutôt qu'un problème technique en soi.

Mais a contrario le plugin permet de faire des choses 'en plus' :
- sélectionner un article d'accueil par rubrique
- utiliser les compositions sur un morceau de la page uniquement
- permettre aux administrateurs de changer leurs compositions eux même parmi un choix fixé par le webmestre
- mais permettre aussi de verouiller des compositions pour que les administrateurs ne puissent pas les changer si ils ne sont pas webmestre

Voilà, tout retour d'utilisation, proposition d'amélioration etc ... sont bienvenus, à condition de ne pas alourdir l'interface et de rester simple d'usage pour les non webmestres !

Cédric

2009/5/12 cedric.morin@yterium.com <cedric.morin@yterium.com>

Bonjour,
malgré mes propos récents, je viens de publier le plugin Compositions sur la zone
http://zone.spip.org/trac/spip-zone/browser/plugins/stable/compositions
et sur spip-contrib
http://www.spip-contrib.net/Compositions

…/…

Je n’aurai qu’un seul mot : Bravo !!!


Etienne Brackers.
http://www.loiseau2nuit.net

| Vince Lombardi - « We didn’t lose the game; we just ran out of time. »

Le 12 mai 2009 15:01, cedric.morin@yterium.com <cedric.morin@yterium.com> a écrit :

Bonjour,
malgré mes propos récents, je viens de publier le plugin Compositions sur la zone
http://zone.spip.org/trac/spip-zone/browser/plugins/stable/compositions
et sur spip-contrib
http://www.spip-contrib.net/Compositions

En deux mots, ce plugin offre une interface et une api pour permettre au webmestre de définir des types de compositions sur chaque objet natif de SPIP (mais aussi sur n’importe quel objet ajouté par un plugin du moment qu’il contient le champ ‹ composition ›).

Pour commencer merci pour ce beau boulot,

En l’état il lui manque encore la fonctionnalité équivalente à rubrique-23/article-23 qui permet d’appliquer un squelette donné dans toute une branche. C’est surtout une histoire d’interface à trouver pour faire cela de façon élégante plutôt qu’un problème technique en soi.

Pourquoi pas une indication de portée sous le choix de la composition :
on indique appliquer à la branche lors de la sélection ou alors composition locale
à côté du choix « aucune » l’interface indique quel est la composition du parent le plus proche

Par contre, comme les compositions sont gérables pour tout type d’objets comment gérer cet héritage pour ce qui n’est pas rattaché à l’arbo de rubriques , on peut avoir des objets ayant leur hiérarchie propre (la généralisation des hierarchie n’est d’ailleurs pas un sujet propre à ce plugin ) ?

Mais a contrario le plugin permet de faire des choses ‹ en plus › :

  • sélectionner un article d’accueil par rubrique
  • utiliser les compositions sur un morceau de la page uniquement
  • permettre aux administrateurs de changer leurs compositions eux même parmi un choix fixé par le webmestre
  • mais permettre aussi de verouiller des compositions pour que les administrateurs ne puissent pas les changer si ils ne sont pas webmestre

va falloir que je l’installe dans un coin pour tester tout ça :slight_smile:

a+


Arnaud

Bonjour Cédric,

Merci pour ce plugin attendu depuis longtemps, il me semble !

Juste deux questions d'ordre pratique :
As-tu envisagé le fait qu'on puisse changer deux zones différentes avec le
plugin composition (exemple : 2 ou 3 colonnes en zone centrale et sur
colonne de droite : un agenda, un nuage de tags ou une zone d'info...) ?

Et les compositions peuvent-elles être différentes selon certaines rubriques
et attitrées qu'à celles-ci (donc avec des graphismes CSS de base
différents) ?

Merci d'avance pour tes lumières...

Cordialement,

Pascal JPM

-----Message d'origine-----
De : cedric.morin@yterium.com [mailto:cedric.morin@yterium.com]
Envoyé : mardi 12 mai 2009 15:01
À : SPIP liste Zone
Objet : [SPIP Zone] Compositions

Bonjour,
malgré mes propos récents, je viens de publier le plugin Compositions
sur la zone
http://zone.spip.org/trac/spip-zone/browser/plugins/stable/compositions
et sur spip-contrib
http://www.spip-contrib.net/Compositions

En deux mots, ce plugin offre une interface et une api pour permettre
au webmestre de définir des types de compositions sur chaque objet
natif de SPIP (mais aussi sur n'importe quel objet ajouté par un
plugin du moment qu'il contient le champ 'composition').

C'est une alternative assez performante au plugin 'squelette par mots
clés' ou à l'utilisation de squelettes comme rubrique=23.html

Pour ceux qui ont suivi, cela ressemble aussi aux objets typés de
James (James si tu m'entends ...)
http://zone.spip.org/trac/spip-zone/log/plugins/dev/objets_types

Historiquement on a développé chacun une idée semblable en parallèle
(je suis le fautif car je n'ai pas travaillé sur la zone) à peu près
en même temps.
Depuis j'ai eu le loisir à travers plusieurs application de murir le
concept et de l'améliorer, et je pense qu'il atteint un niveau de
polyvalence suffisant pour correspondre à plein d'usages assez
récurents.

En l'état il lui manque encore la fonctionnalité équivalente à
rubrique-23/article-23 qui permet d'appliquer un squelette donné dans
toute une branche. C'est surtout une histoire d'interface à trouver
pour faire cela de façon élégante plutôt qu'un problème technique en
soi.

Mais a contrario le plugin permet de faire des choses 'en plus' :
- sélectionner un article d'accueil par rubrique
- utiliser les compositions sur un morceau de la page uniquement
- permettre aux administrateurs de changer leurs compositions eux même
parmi un choix fixé par le webmestre
- mais permettre aussi de verouiller des compositions pour que les
administrateurs ne puissent pas les changer si ils ne sont pas webmestre

Voilà, tout retour d'utilisation, proposition d'amélioration etc ...
sont bienvenus, à condition de ne pas alourdir l'interface et de
rester simple d'usage pour les non webmestres !

Cédric
_______________________________________________
spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone

__________ Information provenant d'ESET NOD32 Antivirus, version de la base
des signatures de virus 4074 (20090514) __________

Le message a été vérifié par ESET NOD32 Antivirus.

http://www.eset.com

Le 14 mai 09 à 14:27, Pascal - JPM Editions a écrit :

Bonjour Cédric,

Merci pour ce plugin attendu depuis longtemps, il me semble !

Juste deux questions d'ordre pratique :
As-tu envisagé le fait qu'on puisse changer deux zones différentes avec le
plugin composition (exemple : 2 ou 3 colonnes en zone centrale et sur
colonne de droite : un agenda, un nuage de tags ou une zone d'info...) ?

Le plugin permet a l'utilisateur de choisir parmi plusieurs compositions pré-définies.
Chaque composition correspond à un squelette. Tu peux donc prévoir des variantes qui modifient une colonne latérale par exemple.
En revanche, non, il ne s'agit pas d'un plugin de gestion de noisettes qui permettrait de faire ses selections de bloc article par article, ou rubrique par rubrique.

Et les compositions peuvent-elles être différentes selon certaines rubriques
et attitrées qu'à celles-ci (donc avec des graphismes CSS de base
différents) ?

La composition change le squelette, tu fais donc bien ce que tu veux dedans ...

Cédric

Lorsque l'on travaille avec composition pour gérer un morceau de page seulement, il faut penser à bien prévoir un squelette par défaut correspondant à aucune composition selectionnée.
Dans ton cas, il faudrait un squelette compositions/article.html
(qui peut être vide) qui sera inclu en l'absence de composition selectionné.

En apparté, je suis en train de réfléchir à une écriture plus élégante de

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

je voudrais pouvoir proposer une écriture plus légère qui se dégrade correctement en l'absence du plugin pour pouvoir désactiver le plugin et que le site puisse encore fonctionner (même si c'est en version dégradée, mais actuellement une telle écriture provoque une erreur directe).
Même si sur ce point tout n'est pas figé, j'ai choisi de publier quand même le plugin, car l'écriture ci-dessus restera fonctionnelle dans tous les cas.

Cédric

Le 14 mai 09 à 15:22, Pascal - JPM Editions a écrit :

Re-Bonjour Cédric,

Après essais, les compositions complètes fonctionnent superbement :slight_smile:
Mais j'ai un petit souci sur #COMPOSITION pour faire varier une partie de la
page uniquement.

Sur une copie de article.html de la dist que j'ai mis dans un dossier
"squelettes" (après avoir activé le CS correspondant), j'ai cherché à mettre
en option de Fil d'Ariane (c'est un test, je ne ferais jamais ça sur un site
en production soyons bien clair).

J'ai donc inclus à la place du code suivant :
<div id="hierarchie"><a
href="#URL_SITE_SPIP/"><:accueil_site:></a><BOUCLE_ariane(HIERARCHIE){id_art
icle}> &gt; <a
href="#URL_RUBRIQUE">[(#TITRE|couper{80})]</a></BOUCLE_ariane>[ &gt; <strong
class="on">(#TITRE|couper{80})</strong>]</div>

Celui-ci :
<INCLURE{fond=#COMPOSITION|compositions_selectionner{article}}{env}>

Et donc insérer dans ma composition nommée "article-fil-ariane.html"
(+article-fil-ariane.xml) :
<BOUCLE_test(ARTICLES){id_article}> <div id="hierarchie"><a
href="#URL_SITE_SPIP/"><:accueil_site:></a><BOUCLE_ariane(HIERARCHIE){id_art
icle}> &gt; <a
href="#URL_RUBRIQUE">[(#TITRE|couper{80})]</a></BOUCLE_ariane>[ &gt; <strong
class="on">(#TITRE|couper{80})</strong>]</div>
</BOUCLE_test>

Si je sélectionne ma composition "article-fil-ariane", cela fonctionne
nickel chrome...
Par contre si je ne prends rien, donc "aucune composition" sélectionnée,
j'obtiens bien ma page article sans le fil d'Ariane mais le compilateur
n'est pas content du tout et en haut à gauche de mon écran j'obtiens le
cadre habituel indiquant :

"Erreur(s) dans le squelette :
1 - Aucun squelette ".html" n'est disponible
2 - Erreur de compilation
Squelette"

En espérant avoir était clair...
Si tu peux regarder cela et me dire ce que j'ai mal fait !!
Remerciements anticipés...

Cordialement,

Pascal JPM

Re,

Désolé d'insister mais cela ne fonctionne pas malgré tes informations...
J'ai toujours le message d'erreur lorsque je n'ai pas d'élément sélectionné.

Les dossiers sont organisés ainsi :

Squelettes avec dedans :
- article.html (Copie de la DIST où il y a l'inclusion :
<INCLURE{fond=#COMPOSITION|compositions_selectionner{article}}{env}> à la
place de la BOUCLE HIERARCHIE)

Squelette/compositions/ avec dedans :
- article.html (le squelette de la DIST mais sans aucune inclusion)
- article-fil-ariane.html (BOUCLE ARTICLE puis HIERARCHIE)
- article-fil-ariane.xml
- article-ss-fil-ariane.html (rien, pas de BOUCLE)
- article-ss-fil-ariane.xml
Aussi essayé avec :
- article.html (sans BOUCLE)
- article.xml
À la place de : article.html (copie de la DIST sans boucle HIERARCHIE)

Et il semblerait qu'il y ait un souci sur l'appellation "article.html" et
que le système ne retrouve pas ses petits...

As-tu essayé avec ce nom de fichier ? Cela fonctionne-t-il chez toi ?

++

Pascal JPM

-----Message d'origine-----
De : cedric.morin@yterium.com [mailto:cedric.morin@yterium.com]
Envoyé : jeudi 14 mai 2009 15:46
À : Pascal - JPM Editions
Cc : 'SPIP liste Zone'
Objet : Re: [SPIP Zone] Compositions

Lorsque l'on travaille avec composition pour gérer un morceau de page
seulement, il faut penser à bien prévoir un squelette par défaut
correspondant à aucune composition selectionnée.
Dans ton cas, il faudrait un squelette compositions/article.html
(qui peut être vide) qui sera inclu en l'absence de composition
selectionné.

En apparté, je suis en train de réfléchir à une écriture plus élégante
de

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

je voudrais pouvoir proposer une écriture plus légère qui se dégrade
correctement en l'absence du plugin pour pouvoir désactiver le plugin
et que le site puisse encore fonctionner (même si c'est en version
dégradée, mais actuellement une telle écriture provoque une erreur
directe).
Même si sur ce point tout n'est pas figé, j'ai choisi de publier quand
même le plugin, car l'écriture ci-dessus restera fonctionnelle dans
tous les cas.

Cédric

Le 14 mai 09 à 15:22, Pascal - JPM Editions a écrit :

Re-Bonjour Cédric,

Après essais, les compositions complètes fonctionnent superbement :slight_smile:
Mais j'ai un petit souci sur #COMPOSITION pour faire varier une
partie de la
page uniquement.

Sur une copie de article.html de la dist que j'ai mis dans un dossier
"squelettes" (après avoir activé le CS correspondant), j'ai cherché
à mettre
en option de Fil d'Ariane (c'est un test, je ne ferais jamais ça sur
un site
en production soyons bien clair).

J'ai donc inclus à la place du code suivant :
<div id="hierarchie"><a
href="#URL_SITE_SPIP/"><:accueil_site:></a><BOUCLE_ariane(HIERARCHIE)
{id_art
icle}> &gt; <a
href="#URL_RUBRIQUE">[(#TITRE|couper{80})]</a></BOUCLE_ariane>[ &gt;
<strong
class="on">(#TITRE|couper{80})</strong>]</div>

Celui-ci :
<INCLURE{fond=#COMPOSITION|compositions_selectionner{article}}{env}>

Et donc insérer dans ma composition nommée "article-fil-ariane.html"
(+article-fil-ariane.xml) :
<BOUCLE_test(ARTICLES){id_article}> <div id="hierarchie"><a
href="#URL_SITE_SPIP/"><:accueil_site:></a><BOUCLE_ariane(HIERARCHIE)
{id_art
icle}> &gt; <a
href="#URL_RUBRIQUE">[(#TITRE|couper{80})]</a></BOUCLE_ariane>[ &gt;
<strong
class="on">(#TITRE|couper{80})</strong>]</div>
</BOUCLE_test>

Si je sélectionne ma composition "article-fil-ariane", cela fonctionne
nickel chrome...
Par contre si je ne prends rien, donc "aucune composition"
sélectionnée,
j'obtiens bien ma page article sans le fil d'Ariane mais le
compilateur
n'est pas content du tout et en haut à gauche de mon écran j'obtiens
le
cadre habituel indiquant :

"Erreur(s) dans le squelette :
1 - Aucun squelette ".html" n'est disponible
2 - Erreur de compilation
Squelette"

En espérant avoir était clair...
Si tu peux regarder cela et me dire ce que j'ai mal fait !!
Remerciements anticipés...

Cordialement,

Pascal JPM

__________ Information provenant d'ESET NOD32 Antivirus, version de la base
des signatures de virus 4075 (20090514) __________

Le message a été vérifié par ESET NOD32 Antivirus.

http://www.eset.com

__________ Information provenant d'ESET NOD32 Antivirus, version de la base
des signatures de virus 4075 (20090514) __________

Le message a été vérifié par ESET NOD32 Antivirus.

http://www.eset.com

tu as bien désactivé la selection automatique des squelettes par le plugin, dans le panneau de configuration ?

dans ton composition/article.html il te faut juste ce doit s'afficher a la place du file d'arianne lorsqu'aucune composition n'est selectionnée (un simple 'toto' suffira surement pour tes tests :p).

Le 14 mai 09 à 19:07, Pascal - JPM Editions a écrit :

Re,

Désolé d'insister mais cela ne fonctionne pas malgré tes informations...
J'ai toujours le message d'erreur lorsque je n'ai pas d'élément sélectionné.

Les dossiers sont organisés ainsi :

Squelettes avec dedans :
- article.html (Copie de la DIST où il y a l'inclusion :
<INCLURE{fond=#COMPOSITION|compositions_selectionner{article}}{env}> à la
place de la BOUCLE HIERARCHIE)

Squelette/compositions/ avec dedans :
- article.html (le squelette de la DIST mais sans aucune inclusion)
- article-fil-ariane.html (BOUCLE ARTICLE puis HIERARCHIE)
- article-fil-ariane.xml
- article-ss-fil-ariane.html (rien, pas de BOUCLE)
- article-ss-fil-ariane.xml
Aussi essayé avec :
- article.html (sans BOUCLE)
- article.xml
À la place de : article.html (copie de la DIST sans boucle HIERARCHIE)

Et il semblerait qu'il y ait un souci sur l'appellation "article.html" et
que le système ne retrouve pas ses petits...

As-tu essayé avec ce nom de fichier ? Cela fonctionne-t-il chez toi ?

++

Pascal JPM

-----Message d'origine-----
De : cedric.morin@yterium.com [mailto:cedric.morin@yterium.com]
Envoyé : jeudi 14 mai 2009 15:46
À : Pascal - JPM Editions
Cc : 'SPIP liste Zone'
Objet : Re: [SPIP Zone] Compositions

Lorsque l'on travaille avec composition pour gérer un morceau de page
seulement, il faut penser à bien prévoir un squelette par défaut
correspondant à aucune composition selectionnée.
Dans ton cas, il faudrait un squelette compositions/article.html
(qui peut être vide) qui sera inclu en l'absence de composition
selectionné.

En apparté, je suis en train de réfléchir à une écriture plus élégante
de

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

je voudrais pouvoir proposer une écriture plus légère qui se dégrade
correctement en l'absence du plugin pour pouvoir désactiver le plugin
et que le site puisse encore fonctionner (même si c'est en version
dégradée, mais actuellement une telle écriture provoque une erreur
directe).
Même si sur ce point tout n'est pas figé, j'ai choisi de publier quand
même le plugin, car l'écriture ci-dessus restera fonctionnelle dans
tous les cas.

Cédric

Le 14 mai 09 à 15:22, Pascal - JPM Editions a écrit :

Re-Bonjour Cédric,

Après essais, les compositions complètes fonctionnent superbement :slight_smile:
Mais j'ai un petit souci sur #COMPOSITION pour faire varier une
partie de la
page uniquement.

Sur une copie de article.html de la dist que j'ai mis dans un dossier
"squelettes" (après avoir activé le CS correspondant), j'ai cherché
à mettre
en option de Fil d'Ariane (c'est un test, je ne ferais jamais ça sur
un site
en production soyons bien clair).

J'ai donc inclus à la place du code suivant :
<div id="hierarchie"><a
href="#URL_SITE_SPIP/"><:accueil_site:></a><BOUCLE_ariane(HIERARCHIE)
{id_art
icle}> &gt; <a
href="#URL_RUBRIQUE">[(#TITRE|couper{80})]</a></BOUCLE_ariane>[ &gt;
<strong
class="on">(#TITRE|couper{80})</strong>]</div>

Celui-ci :
<INCLURE{fond=#COMPOSITION|compositions_selectionner{article}}{env}>

Et donc insérer dans ma composition nommée "article-fil-ariane.html"
(+article-fil-ariane.xml) :
<BOUCLE_test(ARTICLES){id_article}> <div id="hierarchie"><a
href="#URL_SITE_SPIP/"><:accueil_site:></a><BOUCLE_ariane(HIERARCHIE)
{id_art
icle}> &gt; <a
href="#URL_RUBRIQUE">[(#TITRE|couper{80})]</a></BOUCLE_ariane>[ &gt;
<strong
class="on">(#TITRE|couper{80})</strong>]</div>
</BOUCLE_test>

Si je sélectionne ma composition "article-fil-ariane", cela fonctionne
nickel chrome...
Par contre si je ne prends rien, donc "aucune composition"
sélectionnée,
j'obtiens bien ma page article sans le fil d'Ariane mais le
compilateur
n'est pas content du tout et en haut à gauche de mon écran j'obtiens
le
cadre habituel indiquant :

"Erreur(s) dans le squelette :
1 - Aucun squelette ".html" n'est disponible
2 - Erreur de compilation
Squelette"

En espérant avoir était clair...
Si tu peux regarder cela et me dire ce que j'ai mal fait !!
Remerciements anticipés...

Cordialement,

Pascal JPM

__________ Information provenant d'ESET NOD32 Antivirus, version de la base
des signatures de virus 4075 (20090514) __________

Le message a été vérifié par ESET NOD32 Antivirus.

http://www.eset.com

__________ Information provenant d'ESET NOD32 Antivirus, version de la base
des signatures de virus 4075 (20090514) __________

Le message a été vérifié par ESET NOD32 Antivirus.

http://www.eset.com

_______________________________________________
spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone

Le 14 mai 09 à 23:04, Pascal - JPM Editions a écrit :

Merci,

Voila les deux dossiers squelettes et squelettes-dist utilisés
Et les copies d'écrans peut-être utiles...

Encore merci pour ton aide

voila, le bug était dans le plugin :stuck_out_tongue:

Merci à toi, donc

Le plus rigolo est que le plugin ne fonctionnait que par inclusion au départ,
mais après une étude de marché circonstanciée, et les premiers tests clinic,
j'ai revu mon positionnement marketing en prenant en charge la selection auto des squelettes via styliser.

Du coup un bug est apparu sur la gestion en inclusion, que je n'ai pas retestée :stuck_out_tongue:

Cédric

Merci Cédric,
Y'a plus qu'à !!! :smiley:

++

Pascal JPM

De : cedric.morin@yterium.com [mailto:cedric.morin@yterium.com]
Envoyé : vendredi 15 mai 2009 14:51
À : Pascal - JPM Editions
Cc : SPIP liste Zone
Objet : Re: [SPIP Zone] Compositions

Le 14 mai 09 à 23:04, Pascal - JPM Editions a écrit :

Merci,

Voila les deux dossiers squelettes et squelettes-dist utilisés
Et les copies d'écrans peut-être utiles...

Encore merci pour ton aide

voila, le bug était dans le plugin :stuck_out_tongue:

Merci à toi, donc

Le plus rigolo est que le plugin ne fonctionnait que par inclusion au
départ,
mais après une étude de marché circonstanciée, et les premiers tests
clinic,
j'ai revu mon positionnement marketing en prenant en charge la
selection auto des squelettes via styliser.

Du coup un bug est apparu sur la gestion en inclusion, que je n'ai pas
retestée :stuck_out_tongue:

Cédric

__________ Information provenant d'ESET NOD32 Antivirus, version de la base
des signatures de virus 4079 (20090515) __________

Le message a été vérifié par ESET NOD32 Antivirus.

http://www.eset.com