Choix des squelettes par mot clef

Présentation d’un plugin qui permet de choisir les squelettes avec des mots clefs.

La fonction de ce plugin est de sélectionner le « bon » squelette quand il y a plusieurs possibilités. Par exemple quand il existe un squelette d’article album photo et un squelette d’article ordinaire. Cette fonction existe déjà dans Spip avec des numéros de rubriques : tous les articles d’une rubrique peuvent avoir un même squelette différent du reste du site. Ce plugin permet un selection plus fine en permettant de choisir le squelette pour un article ou une rubrique en fonction d’un mot clef qui lui est associé. Le plugin va ajouter cette nouveauté en se substituant à Spip pour la partie recherche de squelette.

La sélection de squelette par mot-clé peut toujours se faire avec une boucle (voir ici comment) mais le Plugin est supposé plus performant. D’un point de vue mise en place, il faut troquer la boucle traditionnelle contre une approche installation et configuration du Plugin.

Le Plugin en action lors d’un appel de page

Lorsqu’un article, par exemple, est demandé, le plugin fonctionne comme ceci :

  1. s’il existe un fichier « article=10.html » et que l’article demandé se trouve dans la rubrique N° 10, alors ce fichier sera retenu comme squelette
  2. s’il existe un fichier « article-10.html » et que l’article demandé se trouve dans la rubrique N° 10 ou encore dans une de ses sous-rubriques sans limitation de profondeur, alors ce fichier sera retenu comme squelette
  3. s’il existe un fichier « article-album.html » et que l’article demandé est lié à un mot-clé « album » reconnu comme sélecteur de squelette [1], alors ce fichier sera retenu comme squelette
  4. s’il existe un fichier « article-album.html » et que l’article demandé se trouve dans une rubrique ou encore dans une de ses sous-rubriques sans limitation de profondeur, qui est liée à un mot-clé « album » reconnu comme sélecteur de squelette, alors ce fichier sera retenu comme squelette
  5. si rien n’a été retenu jusqu’ici, « article.html » sera l’élu.

La recherche s’effectue dans l’ordre précédent en respectant la logique qui a toujours prévalu avant dans SPIP : le plugin ajoute simplement les étapes 3 et 4, avec une même notation qui évite les duplications ou renommages de fichiers squelette.

De plus, le Plugin prend en considération la langue du site ; ainsi pour le Français, il retiendra article-album.fr.html de préférence à article-album.html suivant la notation habituelle de SPIP pour les suffixes de langue.

La mise en oeuvre du Plugin par le Webmestre

On suppose que notre squelette d’album est en place (/squelettes/article-album.html), et que le mot clé « album » a été créé avec possibilité d’être associé à des articles ou à des rubriques.

Installation

Après avoir téléchargé le plugin sur le serveur de fichier de la Zone :

Il faut le décompresser et transférer le répertoire chercher_squelettes_mots par ftp sur votre serveur dans le répertoire plugin.

Activation

L’étape suivante consiste à activer le Plugin, ce qui est fait au moyen du bouton de gestion de Plugin qu’on trouve dans la partie privée de SPIP (à partir de SPIP 1.9).

Le premier effet de cette activation est que l’on voit apparaître un nouvel onglet dans la page de configuration du site (Cf. « Configurer Squelette Mots » à droite dans l’image ci dessus). C’est par lui qu’on va pouvoir déclarer les mot-clés reconnus par le Plugin [2]. Tant que rien n’est configuré le Plugin passera de l’étape 2 à l’étape 5, comme le ferait la fonction « chercher squelette » du noyau, puisque le Plugin a pris la main sur Spip pour la recherche du bon squelette (second effet de l’activation).

Configuration

Il est temps maintenant d’entrer une « règle » dans le configurateur du Plugin. Celle-ci permet de déclarer « album » comme mot-clé sélecteur de squelette en lui associant un « type » [3] ; dans notre exemple : article. Une règle associe un groupe de mot à un type. L’exemple qui suit montre que le Plugin détecte 2 mots-clés dans le groupe « groupe squelette article » : album et toto en affichant les noms de fichiers squelette correspondants en vert (trouvé) ou en rouge (pas trouvé).

On pourra ajouter autant de régles que l’on veut tant que l’on crée les squelettes et mot-clés correspondants.
Le reste relève alors des rédacteurs/administrateurs qui n’ont plus qu’à ajouter le mot-clé « album » aux articles qu’ils souhaitent (par exemple).

On a vu que le mot-clé est associé à un article (le type) dans une règle, alors qu’il peut être ajouté indifféremment à des rubriques ou à des articles. Bien que le rédacteur n’ait aucune visibilité sur le configurateur, il doit comprendre qu’un mot-clé sélecteur appliqué sur une rubrique aura un effet sur la présentation des articles de cette rubrique car, comme Mr. Jourdain, il manipule des squelettes sans le savoir. Si cette logique est trop déroutante, l’administrateur peut toujours restreindre le champ d’application du mot-clé aux seuls articles. [4]

Fond

L’administrateur peut préciser le « fond » dans une règle. Ce fond est le préfixe du squelette, par exemple, pour article-album.html c’est « article », pour rubrique-album.html, c’est « rubrique », etc...

Attention : Il ne faut pas confondre la valeur du fond avec le type d’objet affiché dans l’article (article, rubrique) ni avec le nom du groupe de mot clef de la règle. Le fond permet simplement d’appliquer la règle à d’autres pages que les pages de base de SPIP.

Ce raffinement peut être vu comme une complication, mais cela à l’avantage de faire accepter les règles pour des squelettes d’inclusion (des bouts de squelette donc) et pas seulement sur des squelettes complets.

Attention : Pour que les règles marchent sur les inclusions, il faut que celles-ci aient l’id de l’objet (article, rubique, etc...) dans le context, par exemple : <INCLURE{fond=news} {id_article}>.

Notes

[1Voir l’explication plus bas.

[2Le Plugin mémorise les informations de configuration dans la base SQL (table meta déjà utilisée par SPIP)

[3Cette information de type indique au Plugin quelle est la table de mot visée . Le Plugin connait 4 types : article, rubrique, brèves et sites.

[4Cette problématique n’est d’ailleurs pas propre au plugin puisqu’elle existait déjà avec les notations article=xx.html et article-xx.html.

Discussion

31 discussions

  • 1

    Alors finalement, il marche ou pas ce plugin avec SPIP 1.9.2b ?
    J’ai vu que le fichier squelettes_par_mots_cle_1_92SVN.zip a été mis à jour le 26-JUL-07, soit postérieurement à la discussion Choix des squelettes par mot clef - squelettes_par_mots_cle_1_92SVN ne fonctionne pas avec 1.9.2b

    En tout cas, merci aux créateurs. Chapeau bas.

    Répondre à ce message

  • 6
    Hada de la Luna

    Bonjour  ;o)

    Voilà... Je développe conjointement deux sites (qui ont le même squelette exactement sauf les images et les css)

    L’un est sur SPIP 1.9.2a et, là tout roule sur des roulettes, ça marche merveilleusement (génial le plugin :o))

    Le hic est que le second est sur SPIP 1.9.2b et là... Patatra... Ça marche pas du tout... La configuration du plugin se passe pourtant bien (exactement la même que pour l’autre site) mais rien en se passe sur le site...

    Pour « article-news » et « article-blog » c’est « article » qui s’affiche et de même pour « rubrique-news » et « rubrique-blog » c’est « rubrique » qui s’affiche...

    Il y a t’il une façon de faire pour que cela fonctionne ? Une version plus récente du plugin ?

    Merci d’avance de vos réponses :o)

    • Hada de la Luna

      Je ne comprend plus grand chose là ayant même tenté deux installations « neuves » en 1.9.1 et une installation de 1.9.1 existante « avec qui d’autres plugins marchent »...

      Des idées d’explications ? Comment cela se fait que ça ne fonctionne qu’avec la 1.9.2a ? Et puis surtout comment faire pour que cela fonctionne ?

      Merci d’avance de vos réponses :o)

    • Salut
      Il est vraiment parfait ce plugin mais il a quelque bug
      Par exemple dans mon cas si je fait un groupe type-rubrique avec plusieure mot clé
      je met une régle avec font : rubrique groupe : type rubrique type :rubrique

      Spip me met toujours le squelette rubrique

      Mais si je fais un groupe inscription avec mot clé inscription
      Je fais une règle avec font : rubrique groupe :inscription type : rubrique

      Spip me redirectionne bien sur rubrique-inscription.html

      Euh si quelqu’un est capable de résoudre ce petit probléme Merci
      (version de spip1.9.2a et 1.9.2b )

    • Hada de la Luna

      spip1.9.2a ?

      Aîe... :o[

      moi qui pensais essayer le passage en 1.9.2a pour avoir une chance de voir le plugin fonctionner...  :’o|

    • Suite à mon précédent message je n’ai pas réussi à faire marcher le plugin comme je le souhaitais .Mais j’ai trouvé une solution assez élégante donc je vous la donne ici





      Pour faire fonctionner cette boucle vous devez créer un groupe de mot clé se nommant type-rubrique dans mon exemple aprés vous devez associer un mot clé à votre rubrique .
      Attention un seul mot clé par rubrique. Cette méthode doit marcher aussi avec les articles ..

    • Petit prb

      	<INCLURE{fond=inc-menu-deroulant}{lang}/>	
      			
      		<BOUCLE_choix_rubrique (RUBRIQUES){id_rubrique}>
      		
      		</BOUCLE_choix_rubrique>
      		<BOUCLE_listemot (MOTS){type=type-rubrique}{id_rubrique}>
      		
      <INCLURE{fond=Trubrique-#TITRE}{id_rubrique=#ID_RUBRIQUE}>
      		
      		</BOUCLE_listemot>
    • Bon, j’ai plus le temps de suivre les developpements de SPIP et modifier ce plugin pour qu’il suive aussi...

      Par contre, il est sur la zone et il y a l’air d’y avoir des versions plus recentes :
      http://files.spip.org/spip-zone/squ...

      peut être ça vous aidera.

    Répondre à ce message

  • 2

    Tous d’abord remercions les auteurs du Plugin marcopol, mortimer. Mais....

    Et bien Oui Il y a toujours un Mais.... Je remercie Kent1 sans quoi ce plugin je n’aurai pas su le faire fonctionné

    Tous d’abord il faut déjà savoir que le zip proposé : Plugin 1.9 ne fonctionnera pas sur un spip 1.9.2 et bien oui ; sur la zone ce trouve celui la http://files.spip.org/spip-zone/squelettes_par_mots_cle_1_92SVN.zip

    et la pas de soucis ; il fonctionne Mais et bien oula je me répéte....

    Dans le cas des mots clefs ; j’ai rencontré un truc zarbi ; j’avais creer un groupe de mot clef affichage dans celui ci les mots clefs :
    -  annuaire
    -  menuhorizontal
    -  un squelette rubrique-annuaire

    Lorsque j’ai voulu Configurer Squelettes Mots dans l’espace configuration

    règle 1 :

    Fond : rubrique
    Groupe : affichage
    Type : rubrique
    Déplier1 squelette(s).

    * rubrique-maire.html

    * rubrique=maire.html

    * rubrique-annuaire.html

    * rubrique=annuaire.html

    * rubrique-annonce.html

    * rubrique=annonce.html

    * rubrique-une.html

    * rubrique=une.html

    * rubrique-asso.html
    * rubrique=asso.html

    * rubrique-exclusion.html

    * rubrique=exclusion.html

    j’avais bien un squelette trouvé je l’ai mis en gras ; par contre il dédouble ça je ne l’explique pas...

    et bien il ne fonctionner pas .... en l’état

    il m’a fallu modifier mes groupes de mot clef

    créer un autre groupe de mot clef que j’ai appeler menuhorizontal dans lequel j’ai mis le mot clef :
    -  menuhorizontal

    bien sur j’ai effacer de affichage « menuhorizontal »

    et la oh miracle cela fonctionne ; et ce plugin « il est vraiment terrible »

    Soit une interférence entre les deux plugins ou bien et la je sais pas...

    • Bin, merci pour le tuyau ... du coup j’ai corrigé le lien de téléchargement dans l’article

    • zerocool

      est ce que vous avez le même probleme que moi :

      je n’arrive pas a faire fonctionner ce plugin avec « type : article » en mettant fond « news » ca ne fonctionne pas si je met fond « article » ca fonctionne et je ne peut pas laisser en fond « article » car il est deja utilisé

      pouvez-essayer voir si vous avez le meme probleme que moi svp voici ma configuration en image

      Merci

    Répondre à ce message

  • 1

    Bonjour,
    j’utilise ce plugin qui marche super en 1.9.1.

    En 1.9.2 le plugin marche bien tout seul mais si je l’active j’ai des erreurs « filtre .... non défini »sur d’autres plugin.

    Par exemple le plugin glossaire ( qui est tout simple), le plugin agenda etc etc..

    Quel est le problème ?
    merci

    ps : J’ai essayé avec la dernière version téléchargeable depuis spip-contrib

    • Ouranos

      J’ai le même problème en spip 1.9.2a
      Impossible par exemple de faire fonctionner le plugin form&tables avec SPMC. Quelqu’un a pu contourner le problème ?

    Répondre à ce message

  • 1

    Bonjour

    J’utilise avec merveille ce plugin bien pratique. Malheureusement, il me fait une erreur avec le cookie de correspondance car si ce dernier est activé en même temps que le plugin. J’ai le message suivant :

    Fatal error : Cannot redeclare load_charset() (previously declared in /home/theo4you/public_html/bregnard-org/ecrire/inc/charsets.php:24) in /home/theo4you/public_html/bregnard-org/ecrire/inc/charsets.php on line 24

    Lorsque je vide le cache, tout redevient normal jusqu’à ce que je recacule une page et c’est reparti pour l’erreur.

    Si le cookie de correspondance ou le plugin est désactivé (un des 2) plus de problème !

    Comment pouvoir utiliser ses 2 éléments bien pratique ?

    Merci !

    Pascal

    • Précsion : je suis sous SPIP 1.9.1 [7385] avec une version plus récente même en désactivant le cookie cela ne marche pas.

    Répondre à ce message

  • salut,

    j’ai installé le script et associé le mot clef à l’article...mais il ne marche pas...pouvez vous m’aider ? merci

    voir la configuration|italien

    voir l’article avec mot clef|italien

    Répondre à ce message

  • Bonjour,

    J’ai spip 1.9.1 version [7502] chez free (je sais je n’ai pas choisi le plus facile) et je tente d’améliorer le squelette de base de spip qui est sur mon site.

    Depuis quelques jours je fais tourner différents squelettes (épona, mgs, sarka) en local (easyphp.1.8). Et je voudrais rajouter un forum Spipbb (qui est un squelette à lui tout seul), pour ce faire je me suis dis que cette contribution était parfaite mais quelques soient mes tentatives, j’échoue.

    Peut-on réellement mettre un squelette comme celui de spipbb dans une rubrique « forum » en utilisant ce plugins ?

    Répondre à ce message

  • 1

    Salut,
    j’aurais grandement besoin de ce superbe outil, mais dans la page configuration, on me dit :

    Warning : Invalid argument supplied for foreach() in /mnt/127/sdc/1/f/monsite/plugins/squelettes_par_mots_cle_1_9/exec/config_chercher_squelettes_mots.php on line 101

    c’est grave docteur ?

    Répondre à ce message

  • 1

    Je viens de tester ce plugin.

    Le filtrage par mot clé marche tres bien sur mes squelettes d’article.
    Mais par contre cela ne fonctionne pas pour selectionner un squelette de rubrique......

    • Chez moi :
      -  ça marche pour les articles
      -  ça marche pour les sous rubriques, avec le fond rubrique-monnom
      -  ça marche pour les rubriques avec le fond rubrique=monnom
      -  mais les sous rubriques qui n’ont pas de squelettes persos gardent la mise en forme du rubrique=monnom ce qui n’est pas normal.

      testé sur la derniére version du plugin.

      Une idée ?

      En tout cas merci pour ce plugin prometteur

    Répondre à ce message

  • 2

    bonjour j’ai spip 1.9 avec le patch 1 et la modif pour free
    j’ai le dossier « plugins » (avec un s) à la racine dans lequel j’ai mis le dossier dézippé.
    j’ai par ailleurs créer mon article-album.html dans mon dossier « squelettes » et mis le mot clef « album » à un article.
    j’ai activé le plug in et quand je clique sur configuration j’ai bien le boutton « configurer squelettes mots »
    mais quand je clique dessus j’ai ceci qui s’affiche :

    Erreur...

    Fichier exec/config_chercher_squelettes_mots introuvable

    avez vous ce problème ? si oui quelle solution je peux avoir ?
    dois-je copié coller ce fichier présent dans le dossier exec du plug in pour le mettre dans le dossier exec de spip ?

    • bon en fait le fichier à télécharger sur cette page bugge, il faut le récupérer dans les plug ins branche stable de la zone.
      par contre ma question : une fois que l’on observe bien les liens vert et rouge comment fait on pour activer la prise en compte de notre règle ?
      car si je clique sur le lien vert ça déconne, le rouge ya rien et sinon ben mon site reste le même malgrés la présence des mots clefs et du suelette article-albul.html...???????

    • Je n’ai eu aucun problème mais je ne suis pas chez free. Walma pour 1.9 fonctionne trés bien avec ce plugin.

      Dans configuration : fond =monfond indique que le squelette doit s’appeller : monfond-motclé.html, groupe indique le groupe de mot clé auquel s’applique ce squelette. Type indique que le type d’objet est un article.

      donc Si dans configuration

      fond=monfond, groupe= squelette_article, Type=article et que le mot clé = album du groupe squelette_article existe

      monfond-album.html est en vert sinon il est rouge.

      si tu associe à un article le mot clé album du groupe squelette_article , c’est le squelette monfond-album.html qui est activé.

      Attention : pour un album photo, j’ai constaté avec ce systeme qu’il est difficile de faire « recalculer » la page courante pour tester ce qui fait croire à un dysfonctionnement ( bien en nettoyer le cache du navigateur).

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

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