SPIP - Contrib

SPIP - Contrib

[ar] [en] [es] [fr] [it]

220 visiteurs en ce moment

fontsizeup fontsizedown
[11 commentaires]

Squelettes pour groupes et par groupes de mots

mercredi 29 novembre 2006, par claudeD

  • Digg
  • Del.icio.us
  • Facebook
  • Google
  • Technorati
0 vote

Utiliser des fichiers mots-XX.html et groupes-XX.html pour personnaliser ses squelettes mots en fonction des groupes de mots-clés et créer des squelettes pour les groupes de mots-clés eux-mêmes.

Une contrib — dans sa première partie — pour satisfaire une demande récurrente. Avoir des squelettes de mots en fonction des groupes de mots et des squelettes de groupe selon les groupes à la façon des squelettes article-XX.html pour les articles de la rubrique n° XX.

La première partie peut être utilisée indépendamment pour se contenter d’avoir un plusieurs squelettes particuliers à tel ou tel type de mots-clés..

Première phase : créer des squelettes de mot-clé par groupe de mots

Très simple à utiliser. Il suffit de copier votre fichier mot.html en mots.html. C’est ce fichier mots.html qui vous servira à créer les fichiers mots-10.html (pour les mots du groupe de mots-clés n° 10), mots-XX.html etc. [et les fichiers groupes et groupe-XX.html de la — facultative — deuxième phase] lorsque vous désirez un traitement différent pour des mots-clés d’un groupe donné. En effet, je veux bien mélanger mes mots-clés choux et carottes du groupe légumes, mais n’est pas envie que les mots-clés limaces et vers blancs du groupe parasites viennent les bouffer.

Quant au malheureux fichier mot.html, vous y substituez tout le contenu par cette boucle on ne peut plus simple [1] :

La version pour 1.9x

La balise #CHEMIN est utilisée pour tester — avec le filtre |? — la présence du fichier à deux reprises. La première pour appeler le fichier spécifique au groupe, s’il est présent. La seconde pour faire appeler le fichier de base si la premier appel était négatif.

Le critère {self=#SELF} est nécessaire si on veut utiliser la balise #PAGINATION dans le squelette inclus.

La version Spip 1.8.2-1.8.3

Il s’agissait précédemment de la syntaxe pour Spip 1.9. Pour la 1.8.2 et 1.8.3, il faut utiliser la syntaxe :


Phase seconde : créer des pages de groupes de mots et pouvoir les différencier

Après avoir si facilement créé une page mot spécifique à (éventuellement) chaque groupe de mots, vous voulez aller plus loin et créer une page pour vos groupes.

1re partie : la préparation

Il suffit de reprendre la première phase ; soit créer un fichier groupe.html un peu similaire à notre mot.html modifié précédemment. Ici {id_groupe=#ENV{groupe}} va récupérer l’id du groupe dans l’url qui sera de la forme http://monsite/spip.php?page=groupe[&groupe=(#ID_GROUPE)]

La version pour 1.9x

Ici encore, vérification de la présence d’un fichier groupes-XX.html sinon utilisation de groupes.html. Ajout optionnel aussi du {self=#SELF} pour la pagination.

L’inévitable version Spip 1.8.2-1.8.3

Il s’agissait, précédemment, encore de la syntaxe pour Spip 1.9. Donc, pour la 1.8.2 et 1.8.3, il faut utiliser la syntaxe :

2e partie : créer la page « groupe de mots »

Un fichier groupes.html sert à créer les fichiers groupes-10.html, groupes-XX.html etc. lorsque vous désirez un traitement différent pour un groupe donné de mots-clés. Il s’agit de partir de notre fichier mot.html de départ (de la dist/ par exemple) que vous avez copié sous le nom mots.html.

Lui-même est modifié en lui ajoutant une boucle BOUCLE_groupe_principal. Donc, vous faites une copie de votre fichier de base en groupes.html et ainsi vous modifiez :

en

puis, un « Fil d’Ariane » (chemin hiérarchique utilisé dans les squelettes de la dist) — simplifié — à échanger :

Enfin, vous modifiez la boucle BOUCLE_articles [2] en BOUCLE_mots_groupe (puisque vous ne listez plus les articles attachés à un mot-clé mais les mots-clés d’un groupe donné :

Il s’agit ici d’un copié-collé par rapport au squelette 1.9.1 de la dist ; vous devez donc modifier/supprimer les "class" de l’exemple en fonction de votre squelette.

3e partie : accéder à votre page de « groupe de mots »

Maintenant qu’il y a les données, vous devez afficher le chemin d’accès. Changez le « Fil d’Ariane » dans les fichiers mots.html et mots-XX.html :


Il ne vous reste plus qu’à affiner le squelette et c’est tout bon.

Ainsi, autant pour les squelettes mots.html et groupe.html que mots-XX.html et groupes-XX.html vous pouvez modifier le « menu de navigation mots-cles » [ici de la dist] pour avoir directement la page d’un groupe plutôt que la page du 1er mot du groupe. :

Il s’agit ici aussi d’un copié-collé par rapport au squelette 1.9.1 de la dist ; vous devez donc... J’y ai rajouté la possibilité d’exposer le groupe dans lequel on se trouve (valable pour la page mot comme pour la page groupe).

En 1.8.2/1.8.3 il faut bien sur utiliser la syntaxe page.php3?fond= à la place de spip.php?page=.

Voir en ligne : Un exemple de page avec groupes-40.html. À comparer avec les exemples en fin d’article.

P.-S.

La contribution offre donc l’analogie article/article-XX et rubrique/rubriques-XX — hormis l’utilisation du pluriel — avec les graphies mots/mots-XX et groupes/groupes-XX.


Quelques exemples pour mieux expliciter cet article

  • d’abord des groupes différenciés :
    • groupe 40 (http://hortical.com/spip.php?page=g...) où les mots sont d’abord regroupés par descriptifs (grâce au filtre "unique") puis classés par titre avec pour chacun un certain nombre d’articles correspondants pris au hasard pour rappel.
    • groupe 19 (http://hortical.com/spip.php?page=g...) liste des articles avec exposition des articles ayant le seul et unique mot du groupe. Ici, une plante est nectarifère ou non (même si la réalité est plus complexe).
    • groupe 27 (http://hortical.com/spip.php?page=g...) banale liste d’articles liés à chaque mot, sans pagination.
  • ensuite des pages mots différentes selon le groupe les contenants :

À vos boucles.

Notes

[1] Merci à Pierre Andrews de l’aide pour retrouver le chemin dans les fichiers où je m’égarais de par la malédiction de sainte Axe.

[2] Ici, /dist de la 1.9.1. Vous pouvez supprimer les données sur la pagination si vous le désirez.

Retour en haut de la page

11 Messages de forum

Voir toute la discussion

Pages 1 | 2

  • Répondre à ce message

    3 septembre 11:29 , par Patman

    Effectivement dans mon cas, 3 pages suffisent : groupe.html avec “< BOUCLE_groupe_principal(GROUPES_MOTS)...>”, groupes.html avec la mise en page générale et groupe-N.html avec la mise en page spécifique à l’ID groupe N. D’un autre coté j’ai changer tous les liens qui font référence à “#URL_MOT” en “[(#URL_PAGEgroupe)][&groupe=(#ID_GROUPE)]”, car au début c’était ce qui me fausser le résultat. Merci beaucoup pour votre aide et la rapidité de votre réponse.

  • Répondre à ce message

    2 septembre 20:06 , par claudeD

    Bonjour,

    pas de problème :
    Spip cherche d’abord un squelette groupes-N.html
    s’il ne trouve pas, il utilise le squelette groupes.html/ Ce dernier suffit pour l’ensemble des pages de groupes de mots. Il ne faut donc pas oublier de créer groupes.html.

  • Répondre à ce message

    2 septembre 18:02 , par Patman

    Super ça marche ! une petite question cependant, doit-on systématiquement créer une page groupe-xx.html par groupe de mots ? Ne peut on avoir : un « si pas de page groupe-xx » alors « page groupe » par defaut ? Vu que je doit juste créer une page différente pour un seul groupe de mots, je ne voudrait pas créer toutes les pages pour les autres groupe qui utiliseront le même squelette... Doit-on faire un lien différent de “[(#URL_PAGEgroupe)][&groupe=(#ID_GROUPE)]” ? dans ce cas il cherche forcement une page groupe-xx.html. Espérant ne rien avoir raté, dans les explications, plus haut, merci d’avance pour votre aide

  • Répondre à ce message

    13 mars 11:06 , par Sabine

    Effectivement ça fonctionne très bien, j’appelais mal mes pages de groupes de mots clés. Un exemple :

    http://chernobyl-day.org/spip.php?page=groupe&groupe=2

    Merci encore !

  • Répondre à ce message

    12 mars 19:37 , par claudeD

    je viens de regarder sur : http://hortical.com/spip.php?page=g... qui est en 1.9.3 dev [11250]. Celà fonctionne.

    Vérifie si tu as bien site/spip.php ?page=groupe&groupe=X

    je n’ai plus de site en 1.9.2 utilisant cette contrib

    Claude

  • Répondre à ce message

    12 mars 11:13 , par Sabine

    Merci pour cette contrib qui m’est bien utile. Je la teste sur spip 1.9.2.d ça marche impec pour les squelettes des mots clés (mot.html et mots.html) En revanche, ça ne fonctionne pas pour les squelettes des groupes de mots clés (groupe.html et groupes.html) L’URL spip.php ?groupeX renvoie vers le sommaire. Quelqu’un aurait-il une solution ? merci...

  • Répondre à ce message

    5 mai 2007 00:43 , par claudeD

    Je viens de mettre à jour en 8878 (1.9.2a), la dernière version officielle (j’ai pas réussi à installer la svn de minuit : page blanche).

    pas de problème pour mes squelettes, ils fonctionnent toujours correctement.

    Vérifie le contenu de tes squelettes avec les miens en ligne voir la différence

    Claude

  • Répondre à ce message

    27 avril 2007 03:54 , par Zéas

    J’ai testé différentes choses, j’ai regardé les différences entre Spip 1.9.1 et 1.9.2a, notamment au niveau de INCLURE et des du filtre | ?

    Ca devrait marcher... mais ça ne marche pas, chez moi en tout cas... Je suis impatient de connaître le résultat de tes tests...

    Pour résumer, j’ai donc dupliquer mot.html de la dist dans /squelettes en le renommant mots.html. J’ai créé un fichier mot.html contenant uniquement la boucle "mot_principal" puis j’ai créé un fichier mots-5.html contenant le squelette de ma page, 5 étant l’ID du groupe de mots correspondant que j’appelle par la suite dans mon navigateur via .../spip.php ?mot1191 le mot 1191 appartenant bien au groupe 5.

  • Répondre à ce message

    27 avril 2007 02:46 , par Zéas

    Merci ! Rien ne dit que ça fonctionne en 1.9.2a donc.

    Je vais regarder plus précisément de mon côté aussi du coup. ;-)

  • Répondre à ce message

    26 avril 2007 19:31 , par claudeD

    Je vais mettre à jour pour tester (je suis encore — pour le site qui utilise cette contrib — en 1.9.1

Pages 1 | 2

Répondre à cet article

Retour en haut de la page

Ça discute par ici

SPIP | Squelette | | Plan du site | Suivre la vie du site RSS 2.0