Nuage (de mots-clés)

L’article « Afficher les mots-clés en faisant varier la taille de la police » de BoOz et Fil permettait déjà d’afficher un nuage de mot-clés.

Le présent article reproduit exactement les mêmes résultats, puisqu’il s’agit de son adaptation sous forme de modèles, le tout sous forme de plugin pour faciliter l’installation.

Important : il faut que les statistiques de SPIP soient activées pour que le plugin fonctionne

Contenu du plugin

Il contient deux fichiers html, les modèles nuage.html et nuage_popularite.html. Les fichiers php, quant à eux, définissent un filtre |nuage ou |nuage_pop. On insère aussi quelques styles css dans l’entête de la page, ce qui nécessite l’emploi de la balise #INSERT_HEAD.

Utilisation

Une fois le plugin activé, vous pouvez faire appel aux modèles selon les deux méthodes classiques :

  • dans un squelette html
    • [(#MODELE{nuage})]
    • [(#MODELE{nuage}{id=4})]
  • dans un article :
    • <nuage1>
    • <nuage1|popularite>
    • <nuage|> (notation permettant d’afficher un nuage sans sélectionner de groupe de mots-clés)

La valeur passée en paramètre est facultative et correspond à l’identifiant d’un groupe de mots-clés, si on souhaite réduire le nuage à un seul groupe de mots.

De plus, [(#MODELE{nuage}{id_article=10})], ou <article10|nuage> affichent le nuage en exposant les mots-clés associés à l’article passé en paramètre.

Personnalisations

Cadeau de Noël ou Oeuf de Pâques

Pour faire une sélection de plusieurs groupes de mots-clés et générer un seul nuage, on profite du fait que le critère de sélection dans le modèle est une expression régulière. On peut alors écrire {id=4|10} pour sélectionner les mots des groupes 4 et 10. Attention, ça marche seulement pour l’appel depuis un squelette.

A l’inverse on peut exclure certains groupes de mots clés en utilisant le critère de sélection notid. Celui-ci fonctionnant également selon une expression régulière, la syntaxe permettant de ne pas prendre en compte les groupes 5 et 11 est donc de la forme : {notid=5|11}

Discussion

131 discussions

  • magik_cypress

    modele/nuage.html

    [(#CONFIG{multi_articles}|=={oui}|?{' '})#SET{lang,#ENV{lang}}]
    <BOUCLE_tags(MOTS){type ?}{id_groupe==^((#ENV{id_groupe,.*}))$}{id_groupe!==^((#ENV{notid,-1}))$}{par #ENV{tri,titre}}>[
    (#ID_MOT|nuage{#TITRE,
    [(#ENV{url}|?{
            [(#ENV{url}|parametre_url{id_mot,#ID_MOT}|parametre_url{lang,#GET{lang}})]
            ,
            [(#URL_MOT|parametre_url{lang,#GET{lang}})]
    })]
    })]<BOUCLE_pop(MOTS){id_groupe}></BOUCLE_pop>[
    (#ID_MOT|nuage{'','',#TOTAL_BOUCLE})
    ]<//B_pop></BOUCLE_tags>[<ul class="nuage">
            (#FOREACH{NUAGE})
    </ul>]
    [(#MODELE{nuage}{id_groupe=2})]

    Permet d’afficher le nuage de mots clés dans toute les langues en fonction du groupe de mots clés souhaité.

    Répondre à ce message

  • magik_cypress

    On me demande de partager donc j’améliore ! ;-)

    modele/nuage.html

    <ul class="nuage">
    <BOUCLE_tags(MOTS){type ?}{id_groupe==#ENV{id_groupe}}{par #ENV{tri,titre}}>
    <BOUCLE_pop(ARTICLES){id_mot}></BOUCLE_pop>
    <li><a href="spip.php?mot#ID_MOT" class="nuage#ID_MOT">#TITRE</a></li>
    </BOUCLE_tags>
    </ul>
    [(#MODELE{nuage}{id_groupe=2})]

    id_groupe = le groupe de mots que vous souhaitez afficher

    Répondre à ce message

  • 1

    Bonsoir

    Je souhaite modifier ce plugins pour le faire travailler avec des sites et non des articles mais même en modifiant articles par syndic, ça marche pas.

    Est ce que le concepteur peux me conseiller sur la manipe ?

    • Bon entre temps j’ai pu modifier ce que je voulais et ça marche, je vais le faire de façon a faire u commit demain

      A moins que quelqu’un si opose

    Répondre à ce message

  • magik_cypress

    Dans model/nuage.html

    [(#CONFIG{multi_articles}|=={oui}|?{' '})#SET{lang,#ENV{lang}}]
    <ul class="nuage">
    <BOUCLE_tags(MOTS){type ?}{id_groupe==2}{par #ENV{tri,titre}}>
    <BOUCLE_pop(ARTICLES){id_mot}></BOUCLE_pop>
    <li><a href="spip.php?mot#ID_MOT" class="nuage#ID_MOT">#TITRE</a></li>
    </BOUCLE_tags>
    </ul>

    La personnalisation est moins bonne, mais c’est fonctionnel sur SPIP 2.0.8

    Répondre à ce message

  • 2
    sylvain

    Bonjour,
    je débute dans l’utilisation de spip,
    et pour le site que je dois realiser, j’ai envi de mettre en place un nuage de mot clef,
    j’utilise deja un plugin pour le squellette de mes pages, j’ai telechargé le plugin pour le nuage de mot clé, mais je n’arrive pas à l’utiliser, je l’ai activé, j’ai lu le manuel pour son utilisation, mais je ne comprends pas grand chose, svp, est ce que quelqu’un pourrait me donner une procédure d’utilisation un peu plus détaillée.
    merci et bonne journée.

    • Bonjour,
      lorsque je mets :
      <nuage1>

      dans un article, j’ai la liste de ts les mots clés suivie de : 1/3

      A quoi correspond ce « 1/3 » ?

      Lorsque je mets
      Il ne m’affiche rien du tout.
      1 explication ?
      Merci de vos réponses
      Julien

    • Bonjour,
      lorsque je mets :
      nuage1

      dans un article, j’ai la liste de ts les mots clés suivie de : 1/3

      A quoi correspond ce « 1/3 » ?

      Lorsque je mets : nuageNOM_DU_GROUPE_MOT_CLES
      Il ne m’affiche rien du tout.
      1 explication ?
      Merci de vos réponses
      Julien

    Répondre à ce message

  • Bonjour a tous,
    j’ai installé et configuré le plugin comme indiqué ci dessus
    et sur ma page, mes mots clé s’affichent exactement à l’endroit
    où je voulais. cependant ils ont tous la meme taille,
    je ne sais pas pourquoi, svp est ce que quelqu’un peut il me
    donner plus d’explications ou m’indiquer les possibles causes de ce problème ? Si possible qu’est ce qu’il faut faire pour y remedier.
    merci à tous, et merci encore pour le plugin, il est tout simplement génial.

    Répondre à ce message

  • 2

    Bonjour,

    Je suis sous SPIP 2.0.8 (rev. 13982), le plugin est activé mais l’inclusion dans un squelette via #MODELE ne me renvoie rien.

    Par contre, si j’utilise la balise <nuage> dans un article, ou même si je copie-colle le contenu du fichier nuage.html dans le squelette, à l’endroit de l’inclusion, ça fonctionne.

    C’est grave docteur ?

    • Miranda

      Bonjour,
      je ne sais pas si c’est grave ou pas, mais merci pour le tuyau...

      Je suis sous Spip 2..0.8 et j’ai du créer un fichier inc-nuages.html pour que le nuage des mots-clé fonctionne dans mes rubriques...

      Le code du fichier est :

      [(#CONFIGmulti_articles|==oui| ?’ ’)#SETlang,#ENVlang]
      [
      (#ID_MOT|nuage#TITRE,
      [(#ENVurl| ?
      [(#ENVurl|parametre_urlid_mot,#ID_MOT|parametre_urllang,#GETlang)]
      ,
      [(#URL_MOT|parametre_urllang,#GETlang)]
      )]
      )][
      (#ID_MOT|nuage’’,’’,#TOTAL_BOUCLE)
      ]/B_pop>[

      • (#FOREACH
      NUAGE)

      ]

      comme ça j’ai peut faire différents inclusions en changeant l’ID du groupe.

      Le modèle (#MODELEnuageid=7 fonctionne bien seulement sur la home page du site.

      J’espère que cela va servir aussi à quelqu’un d’autre

    • Merci Miranda mais le problème c’est que ton code n’est pas lisible ...
      du fait que la balise <code> ne semble pas fonctionner ici.

      Il y a une différence avec le code du modèle ?

    Répondre à ce message

  • Bonjour a tous,

    Je souhaite trier par fréquence les mots clé dans mon squelette, que dois-je mettre dans celui ci ?

    Merci a vous,

    Niko

    Répondre à ce message

  • Pour ceux que ça intéresse, il suffisait de remplacer cela :

    <BOUCLE_tags(MOTS){type ?}{id_groupe==^((#ENV{id,.*}))$}{id_groupe!==^((#ENV{notid,-1}))$}{par #ENV{tri,titre}}>

    par cela :

    <BOUCLE_tags(MOTS){type ?}{id_groupe==2}{par #ENV{tri,titre}}>

    Par contre j’ai un probleme avec la taille des liens, elle ne varie plus. Quelqu’un pourrait m’indiquer ce qui pose probleme ?

    Répondre à ce message

  • Bonjour,
    lorsque j’utilise ce plugin, j’obtiens la liste des mots clés mais je voudrais obtenir la liste des articles possédant le mot clé en question.

    J’arrive à afficher le groupe en question :
    <BOUCLE_tags(MOTS){type ?}{id_groupe==2}{par #ENV{tri,titre}}>

    Mais comment faire pour afficher les titres des articles possédant un certain mot clé ? (ou appartenant à un groupe)

    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