Squelette pour un article

Bonjour,
sans doute une question toute bête :
je voudrais un squelette spécifique pour un seul article
et je ne trouve pas la combine.
En fait j'utilise le plugin "Pages" pour créer des pages uniques
(ce sont des pages sans rubriques)
et le squelette article.html ne me convient pas tout à fait.
merci Sylvain

Bonjour,
le plugin composition est parfait pour ça :

a+
Le 25 mars 2013 à 16:39, Sylvain Du Pasquier a écrit :

Bonjour,
sans doute une question toute bête :
je voudrais un squelette spécifique pour un seul article
et je ne trouve pas la combine.
En fait j'utilise le plugin "Pages" pour créer des pages uniques
(ce sont des pages sans rubriques)
et le squelette article.html ne me convient pas tout à fait.
merci Sylvain
_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Discuter chez rezo.net

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc

Le 25/03/2013 16:39, Sylvain Du Pasquier a écrit :

Bonjour,
sans doute une question toute bête :
je voudrais un squelette spécifique pour un seul article
et je ne trouve pas la combine.
En fait j'utilise le plugin "Pages" pour créer des pages uniques
(ce sont des pages sans rubriques)
et le squelette article.html ne me convient pas tout à fait.
merci Sylvain

Bonjour.
Pour ma part je copie le squelette articles.html, je renome la copie article-<numéro de l'article>.html, et je personnalise ce dernier, le tout dans le répertoire squelettes.
Didier.

pourquoi surcharger le site avec un plugin aloes que c le fonctionnement naturel de spip comme le fait remarquer sylvain
type de page : article-numdeceluici
yo

Envoyé de mon iPhone

Le 25 mars 2013 à 19:38, Didier <d.berland@orange.fr> a écrit :

Le 25/03/2013 16:39, Sylvain Du Pasquier a écrit :

Bonjour,
sans doute une question toute bête :
je voudrais un squelette spécifique pour un seul article
et je ne trouve pas la combine.
En fait j'utilise le plugin "Pages" pour créer des pages uniques
(ce sont des pages sans rubriques)
et le squelette article.html ne me convient pas tout à fait.
merci Sylvain

Bonjour.
Pour ma part je copie le squelette articles.html, je renome la copie article-<numéro de l'article>.html, et je personnalise ce dernier, le tout dans le répertoire squelettes.
Didier.

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Discuter chez rezo.net

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc

Salut,

Le 26 mars 2013 07:57, yonnel kurtz <yonnel.kurtz@gmail.com> a écrit :

pourquoi surcharger le site avec un plugin aloes que c le fonctionnement naturel de spip comme le fait remarquer sylvain
type de page : article-numdeceluici

Parce que vous faites une confusion entre les variantes de squelettes
qui sont pour les *rubriques* et ce que demande Sylvain qui est pour
un *article*.

cf: Les variantes de squelette - SPIP

article-XX.html est le squelette qui sera affiché pour les articles
présents dans la rubrique XX et ses sous rubriques. Ce n'est pas le
squelette pour l'article XX.

La bonne méthode est bien le plugin composition comme proposé dès le
début par miros.

--
Beurt

Oui tu as raison
j’avais pas poussé plus loin
YO

Le 26 mars 2013 08:13, Beurt <beurt@spip.org> a écrit :

Salut,

Le 26 mars 2013 07:57, yonnel kurtz <yonnel.kurtz@gmail.com> a écrit :

pourquoi surcharger le site avec un plugin aloes que c le fonctionnement naturel de spip comme le fait remarquer sylvain
type de page : article-numdeceluici

Parce que vous faites une confusion entre les variantes de squelettes
qui sont pour les rubriques et ce que demande Sylvain qui est pour
un article.

cf: http://www.spip.net/fr_article3445.html

article-XX.html est le squelette qui sera affiché pour les articles
présents dans la rubrique XX et ses sous rubriques. Ce n’est pas le
squelette pour l’article XX.

La bonne méthode est bien le plugin composition comme proposé dès le
début par miros.


Beurt

adresse mail : yonnel.kurtz@gmail.com
mobile : 07 61 72 79 12

Identifiant de société : Siren : 501 161 384
Code NAF : 722C
Siret : 501 161 384 00018
Code Insee : C75017862440

Oui,
je trouve que le plugin est lourd et compliqué
et il me semble que la solution devrait être simple.
Effectivement artcle-2.html spécifie le squellette
des articles de la rubrique 2.
Je cherche encore

Le 26/03/2013 08:13, Beurt a écrit :

Salut,

Le 26 mars 2013 07:57, yonnel kurtz <yonnel.kurtz@gmail.com> a écrit :

pourquoi surcharger le site avec un plugin aloes que c le fonctionnement naturel de spip comme le fait remarquer sylvain
type de page : article-numdeceluici

Parce que vous faites une confusion entre les variantes de squelettes
qui sont pour les *rubriques* et ce que demande Sylvain qui est pour
un *article*.

cf: Les variantes de squelette - SPIP

article-XX.html est le squelette qui sera affiché pour les articles
présents dans la rubrique XX et ses sous rubriques. Ce n'est pas le
squelette pour l'article XX.

La bonne méthode est bien le plugin composition comme proposé dès le
début par miros.

Le 26 mars 2013 08:33, Sylvain Du Pasquier <syl.dupac@wanadoo.fr> a écrit :

Oui,
je trouve que le plugin est lourd et compliqué
et il me semble que la solution devrait être simple.
Effectivement artcle-2.html spécifie le squellette
des articles de la rubrique 2.
Je cherche encore

Tu peux aussi faire un aiguillage manuel, en mettant dans le squelette
article.html:

----------8<---------------
[(#ID_ARTICLE|=={XX}|?{
  <INCLURE{fond=article_XX,env}>,
  <INCLURE{fond=article_standard,env}>
)]
----------->8-------------

où XX est le n° de l'article spécifique et où article_XX.html est le
squelette spécifique de cet article et article_standard.html est le
squelette pour les autres.

Après tu peux faire des variantes plus sophistiquées pour que XX soit
variable en utilisant notamment les itérateurs pour lister les
fichiers de type article_numéro.html qui existent.

--
Beurt

tu dis que tu utilise « pages », et sur la doc de ce plugin il y a une solution assez simple, je cite :

Imaginons que l’on ait créé une page « Notice légale » avec le mot « legal » dans le champ « page ». On peut alors :

  • Faire une boucle <BOUCLE_legal(ARTICLES){page=legal}>#TEXTE</BOUCLE_legal>
  • Et mieux encore, avoir un squelette « legal.html » dédié, dans lequel on n’a plus qu’à faire <BOUCLE_legal(ARTICLES){page}>

:

salut,
tu dis que tu utilise « pages », et sur la doc de ce plugin il y a une solution assez simple, je cite :

Imaginons que l’on ait créé une page « Notice légale » avec le mot « legal » dans le champ « page ». On peut alors :

  • Faire une boucle <BOUCLE_legal(ARTICLES){page=legal}>#TEXTE</BOUCLE_legal>
  • Et mieux encore, avoir un squelette « legal.html » dédié, dans lequel on n’a plus qu’à faire <BOUCLE_legal(ARTICLES){page}>

:

Le 26 mars 2013 08:39, Beurt <beurt@spip.org> a écrit :

Après tu peux faire des variantes plus sophistiquées pour que XX soit
variable en utilisant notamment les itérateurs pour lister les
fichiers de type article_numéro.html qui existent.

Jouons un peu avec les variantes (j'essaie d'imiter denisb...):

ce squelette article.html devrait aiguiller vers des variantes
article_XX.html si elles existent, sinon vers article_standard.html

-------8<--------------
[(#REM)

  Aiguille vers la bonne variante de squelette article en fonction de
l'id_article:

  Si id_article=XX et qu'un squelette article_XX.html existe, c'est lui
qui s'affiche,
  Sinon, c'est article_standard.html qui s'affiche

  (penser à bien renseigner le bon répertoire pour les squelettes)

]
#FILTRE{trim}

[(#REM) à renseigner !]
#SET{repertoire_squelettes,squelettes}

<BOUCLE_Liste_Variantes(DATA){source glob,
#GET{repertoire_squelettes}/article_*.html}>
  [(#SET{tableau_variantes,[(#GET{tableau_variantes}|sinon{#ARRAY}|push{#VALEUR})]})]
</BOUCLE_Liste_Variantes>

[(#SET{a_tester,[(#GET{repertoire_squelettes})/article_#ID_ARTICLE.html]})]

[(#GET{a_tester}|in_array{#GET{tableau_variantes}}|?{
    <INCLURE{fond=article_#ID_ARTICLE,env}>,
    <INCLURE{fond=article_standard,env}>
  
  }
)]
---------->8-----------

voir: Exemples de `BOUCLE(DATA)` - SPIP (si SPIP < 3 alors le
plugin itérateurs est nécessaire)

Cette solution devrait être relativement générique...

--
Beurt

Il est aussi possible et éventuellement intéressant
de faire un modele contenant le squelette pour cet article
et de l'appeler dans le TEXTE de l'article
JL

J’utilise aussi quelque fois le plugin champs extras et champs extra interface. J’y ajoute un selecteur (champs maquette dans mon exemple):

choix1|variante A

choix2|variante B

etc…

Puis dans l’article je teste avec un code dans ce genre là :
[(#MAQUETTE|=={choix1}|ou{#MAQUETTE|is_null}|oui)
<INCLURE{fond=inclure/maquetteA}{env}{id_article}>
]
[(#MAQUETTE|=={choix2}|oui)
<INCLURE{fond=inclure/maquetteB}{env}{id_article}>
]

C’est tout.

C’st beaucoup plus léger qu’un plugin usine à gaz juste pour une petite distinction.

(Avant j’utilisais les mots-clés mais j’ai cru comprendre que c’était une mauvaise pratique, champs extra, c’est mieux propre et pas cher :wink: )

Cordialement

Merci à tous,
me voilà pourvu de plusieurs solutions
que je vais examiner à tête reposée…
J’avais lu la notice de « Pages » mais je me demande
si cet article est à jour (ou l’explication un peu succincte)
Je n’ai pas réussi à utiliser la méthode proposée.
Je ferai un retour quand j’aurais avancé sylvain

Merci à tous,
me voilà pourvu de plusieurs solutions
que je vais examiner à tête reposée...
J'avais lu la notice de "Pages" mais je me demande
si cet article est à jour (ou l'explication un peu succincte)
Je n'ai pas réussi à utiliser la méthode proposée.
Je ferai un retour quand j'aurais avancé sylvain
(oups, désolé pour le fond couleur du message précédent....)

Le 26/03/2013 10:00, Fabrice Véronneau a écrit :

J'utilise aussi quelque fois le plugin *champs extras* et*champs extra interface*. J'y ajoute un selecteur (champs *maquette* dans mon exemple):
choix1|variante A
choix2|variante B
etc…

Puis dans l'article je teste avec un code dans ce genre là :
[(#MAQUETTE|=={*choix1*}|ou{#MAQUETTE|is_null}|oui)
<INCLURE{fond=*inclure/maquetteA*}{env}{id_article}>
]
[(#MAQUETTE|=={*choix2*}|oui)
<INCLURE{fond=*inclure/maquetteB*}{env}{id_article}>
]
C'est tout.
C'st beaucoup plus léger qu'un plugin usine à gaz juste pour une petite distinction.

(Avant j'utilisais les mots-clés mais j'ai cru comprendre que c'était une mauvaise pratique, champs extra, c'est mieux propre et pas cher :wink: )

Cordialement

Fa_b

Le 26 mars 2013 08:39, Beurt <beurt@spip.org <mailto:beurt@spip.org>> a écrit :

    Le 26 mars 2013 08:33, Sylvain Du Pasquier <syl.dupac@wanadoo.fr
    <mailto:syl.dupac@wanadoo.fr>> a écrit :
    > Oui,
    > je trouve que le plugin est lourd et compliqué
    > et il me semble que la solution devrait être simple.
    > Effectivement artcle-2.html spécifie le squellette
    > des articles de la rubrique 2.
    > Je cherche encore
    >

    Tu peux aussi faire un aiguillage manuel, en mettant dans le squelette
    article.html:

    ----------8<---------------
    [(#ID_ARTICLE|=={XX}|?{
    <INCLURE{fond=article_XX,env}>,
    <INCLURE{fond=article_standard,env}>
    )]
    ----------->8-------------

    où XX est le n° de l'article spécifique et où article_XX.html est le
    squelette spécifique de cet article et article_standard.html est le
    squelette pour les autres.

    Après tu peux faire des variantes plus sophistiquées pour que XX soit
    variable en utilisant notamment les itérateurs pour lister les
    fichiers de type article_numéro.html qui existent.

    --
    Beurt
    _______________________________________________
    liste spip
    spip@rezo.net <mailto:spip@rezo.net> - désabonnement : envoyer un
    mail à spip-off@rezo.net <mailto:spip-off@rezo.net>

    Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
    Discuter chez rezo.net

    Documentation de SPIP : http://www.spip.net/

    Irc : de l'aide à toute heure : http://spip.net/irc

Le 26 mars 2013 09:21, Beurt <beurt@spip.org> a écrit :

Le 26 mars 2013 08:39, Beurt <beurt@spip.org> a écrit :

Après tu peux faire des variantes plus sophistiquées pour que XX soit
variable en utilisant notamment les itérateurs pour lister les
fichiers de type article_numéro.html qui existent.

Jouons un peu avec les variantes (j'essaie d'imiter denisb...):

ce squelette article.html devrait aiguiller vers des variantes
article_XX.html si elles existent, sinon vers article_standard.html

Encore plus simple et efficace:

-----8<-------------------
[(#REM)

  Aiguille vers la bonne variante de squelette article en fonction de
l'id_article:

  Si id_article=XX et qu'un squelette article_XX.html existe, c'est lui
qui s'affiche,
  Sinon, c'est article_standard.html qui s'affiche

]
#FILTRE{trim}

[(#SET{a_tester,[article_(#ID_ARTICLE).html]})]

[(#GET{a_tester}|find_in_path|?{
    <INCLURE{fond=article_#ID_ARTICLE,env}>,
    <INCLURE{fond=article_standard,env}>
  
  }
)]
---------->8-------------------

Gros avantage: ça tient compte des surcharges éventuelles et des
éventuels dossiers squelettes différents...
(pas besoin non plus des itérateurs)

Je me demande si je vais pas en faire un mini plugin...

--
Beurt

Le 27/03/2013 10:55, Beurt a écrit :

Le 26 mars 2013 09:21, Beurt <beurt@spip.org> a écrit :

Le 26 mars 2013 08:39, Beurt <beurt@spip.org> a écrit :

Après tu peux faire des variantes plus sophistiquées pour que XX soit
variable en utilisant notamment les itérateurs pour lister les
fichiers de type article_numéro.html qui existent.

Jouons un peu avec les variantes (j'essaie d'imiter denisb...):

ce squelette article.html devrait aiguiller vers des variantes
article_XX.html si elles existent, sinon vers article_standard.html

-----8<-------------------
[(#REM)

  Aiguille vers la bonne variante de squelette article en fonction de
l'id_article:

  Si id_article=XX et qu'un squelette article_XX.html existe, c'est lui
qui s'affiche,
  Sinon, c'est article_standard.html qui s'affiche

]
#FILTRE{trim}

[(#SET{a_tester,[article_(#ID_ARTICLE).html]})]

[(#GET{a_tester}|find_in_path|?{
    <INCLURE{fond=article_#ID_ARTICLE,env}>,
    <INCLURE{fond=article_standard,env}>
  
  }
)]
---------->8-------------------

Gros avantage: ça tient compte des surcharges éventuelles et des
éventuels dossiers squelettes différents...
(pas besoin non plus des itérateurs)

Bravo !

Je me demande si je vais pas en faire un mini plugin...

Ou plutot un article de synthèse des divers moyens
de spécialiser les squelettes, depuis les variantes
(encore mal comprises) les mots-clés techniques
et bien sur Z et Composition signalant l'excellent
article de Joseph (que je viens de decouvrir) :

Je vais aussi en ecrire un sur SPN, avec cette astuce !
(a rajouter aussi dans Astuces courtes pour SPIP )

Une remarque toutefois : avant d'en faire un plugin,
ne faudrait-il pas choisir un separateur (le _ ici)
qui soit compatible avec les normes de nommage,
de Composition et NoiZetier ?

--
YannX

Le 27 mars 2013 11:06, YannX/SPIP <yannx.spip@hotmail.fr> a écrit :

Je me demande si je vais pas en faire un mini plugin...

Ou plutot un article de synthèse des divers moyens
de spécialiser les squelettes, depuis les variantes
(encore mal comprises) les mots-clés techniques
et bien sur Z et Composition signalant l'excellent
article de Joseph (que je viens de decouvrir) :
À propos de Zpip, de Compositions, du noiZetier et d'Aveline - Joseph Larmarange

Je n'ai pas vraiment le temps de faire un tel article. Ça ira plus
vite de faire un petit plugin simple pour ceux qui ont simplement ce
besoin comme Sylvain.

Une remarque toutefois : avant d'en faire un plugin,
ne faudrait-il pas choisir un separateur (le _ ici)
qui soit compatible avec les normes de nommage,
de Composition et NoiZetier ?

Je ne vois pas trop ce que tu veux dire. L'idée est de compléter le
système des variantes proposé par Spip qui porte sur les rubriques en
ajoutant simplement les articles. Le choix du "_" est logique dans la
mesure où "=" et "-" sont pris par les variantes-rubriques. C'est donc
une alternative à ce que propose le plugin Composition, qui est plus
élaboré et permet une configuration plus souple dans la partie privée.
Moi je ne fais qu'étendre l'idée des variantes pour ceux qui veulent
un résultat rapide et qui ont des besoins modestes.

--
Beurt

Le 27 mars 2013 10:55, Beurt <beurt@spip.org> a écrit :

Je me demande si je vais pas en faire un mini plugin...

Voilà c'est fait:
http://files.spip.org/spip-zone/variantes_articles.zip (zip), et
bientôt Variantes Articles - Plugins SPIP (le temps que
le site le prenne en compte)

ça devrait fonctionner sur SPIP 2.1 et 3... J'ai pas testé en dessous
de 2.1.13, mais si quelqu'un veut tester, il suffit de changer les
bornes dans plugin.xml (ça pourrait fonctionner, je ne sais pas à
partir de quelle version le pipeline styliser a été introduit).

Le plugin fonctionne légèrement différemment de ce que je proposais
sous forme de squelette:

*soit un article ayant l'id_article = XX*

S'il existe à la fois "article.html" (limitation introduite depuis au
moins SPIP 2.1 pour les variantes des squelettes dans SPIP, voir:
Les variantes de squelette - SPIP) et "article_XX.html" dans le
même répertoire (de plugin ou celui des squelettes),
alors c'est le squelette "article_XX.html" qui sera affiché.
Sinon, ce sera "article.html".

D'un point de vue technique, il rajoute un traitement en amont du
pipeline styliser dans lequel il vérifie la présence des fichiers
("article.html", "article_XX.html") et aiguille vers le bon fichier.
Les variantes par rubriques et par langues continuent de fonctionner
et sont traitées après (je pense même qu'en théorie elles peuvent se
cumuler: article_XX=42.vi.html est le squelette qui va s'afficher si
id_article=XX, id_rubrique=42 et lang=vi)

--
Beurt

Merci tout plein,
je vois que tu as vraiment compris la demande
qui était en elle même assez simple
(et pas facile à satisfaire) Sylvain

Le 27/03/2013 15:56, Beurt a écrit :

Le 27 mars 2013 10:55, Beurt <beurt@spip.org> a écrit :

Je me demande si je vais pas en faire un mini plugin...

Voilà c'est fait:
http://files.spip.org/spip-zone/variantes_articles.zip (zip), et
bientôt Variantes Articles - Plugins SPIP (le temps que
le site le prenne en compte)

ça devrait fonctionner sur SPIP 2.1 et 3... J'ai pas testé en dessous
de 2.1.13, mais si quelqu'un veut tester, il suffit de changer les
bornes dans plugin.xml (ça pourrait fonctionner, je ne sais pas à
partir de quelle version le pipeline styliser a été introduit).

Le plugin fonctionne légèrement différemment de ce que je proposais
sous forme de squelette:

*soit un article ayant l'id_article = XX*

S'il existe à la fois "article.html" (limitation introduite depuis au
moins SPIP 2.1 pour les variantes des squelettes dans SPIP, voir:
Les variantes de squelette - SPIP) et "article_XX.html" dans le
même répertoire (de plugin ou celui des squelettes),
alors c'est le squelette "article_XX.html" qui sera affiché.
Sinon, ce sera "article.html".

D'un point de vue technique, il rajoute un traitement en amont du
pipeline styliser dans lequel il vérifie la présence des fichiers
("article.html", "article_XX.html") et aiguille vers le bon fichier.
Les variantes par rubriques et par langues continuent de fonctionner
et sont traitées après (je pense même qu'en théorie elles peuvent se
cumuler: article_XX=42.vi.html est le squelette qui va s'afficher si
id_article=XX, id_rubrique=42 et lang=vi)