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.

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_popularite}{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

130 discussions

  • 3

    Bonjour,

    Comment faire pour “styler” ce nuage dans l’interface privée du site ?
    Je compte m’en servir couplé au plugin Etiquettes pour permettre à mes auteurs d’ajouter des mots-clés à la volée sur mes articles, mais le nuage qui est censé afficher de manière assez jolie et claire les mots-clés existant... les affiche sans style particulier, parce que le CSS du plugin nuage n’est nulle part inclus.

    Bref, côté public tout roule nickel (probablement parce que le pipeline inclut automatiquement le CSS dans le header), mais côté privé je ne parviens pas à inclure le CSS... comment faire ?

    Merci à vous !
    Med.

    • Regarde ce coté : http://www.spip-contrib.net/Habillage-graphique-du-plugin

      chaque style utile à l’habillage y est décrit. Tu n’as qu’à implémenter ces styles dans une surcharge des fichiers de feuilles de style de la partie privée.

    • Ok. J’ai vu qu’on pouvait surcharger un style de l’espace privé en posant une feuille CSS du nom de celle de l’espace privé dans le répertoire squelette... ca m’enchante pas spécialement.

      Mais c’est ok au final, j’ai trouvé ma réponse ici : http://programmer.spip.org/header_prive

      C’est quand même pas trivial de trouver une info concernant le dev sous SPIP... ! :/

      Merci tout de même pour ta réponse :-)

    • Du coup, histoire d’être exhaustif pour les perdus dans mon genre, voilà ce qu’il faut faire (en tout cas ça marche) pour ajouter un fichier CSS d’un plugin dans la partie privée (ici, nuage.css) :
      1 - éditer le plugin.xml pour y ajouter une section précisant le pipeline header_prive :

              <pipeline>
                      <nom>header_prive</nom>
                      <inclure>nuage_pipelines_prive.php</inclure>
              </pipeline>

      2 - créer un fichier nuage_pipelines_prive.php à la racine du plugin qui contient :

      function nuage_insert_head_css($flux){ 
              static $done = false; 
              if (!$done) {
                      $done = true;
                      $flux .= "\n<link rel=\"stylesheet\" href=\"" .
                      direction_css(find_in_path('nuage.css')) .
                      "\" type=\"text/css\" media=\"all\" />\n";
                      }
              return $flux;
      }
      function nuage_header_prive($flux){
              $flux = nuage_insert_head_css($flux);
              return $flux;
      }

      Ici j’ai pris le cas d’un fichier CSS, et je suis passé par function nuage_insert_head_css(). Mais on peut très bien se contenter de concaténer ce dont on a besoin directement à la variable $flux depuis la seule méthode nuage_header_prive, et ainsi insérer un JS, ou tout autre chaine de caractère à vrai dire, dans le header du privé.

      Have fun....

    Reply to this message

  • 4

    Bonjour,

    pour info il y a un jquery qui pourrait faire un modèle de nuages complémentaire à ceux proposés dans ce plugin, c’est :

    http://codesign.verse.jp/jquery/200...

    • Bonjour,

      Comment fait-on pour afficher le nuage correspondant à un seul groupe de mots clés ? Si j’utilise la syntaxe indiquée plus haut, le nuage s’affiche, mais tous les mots-clés de tous les groupes apparaissent et à la fin, il y a id=4.... visiblement, la sélection n’a pas été faite...

      Merci d’avance pour vos éclairages !

    • J’ai le même problème.
      J’ai ecri <nuage|thèmes> pour n’afficher que les mots cles du groupe thèmes et j’ai aussi les mots du groupe _ config_ .
      Merci pour votre aide

    • Max tu peux mettre ton code entre <code> et stp ?

      Sinon on peux pas deboguer

    • L’écriture “SPIP 2.1” passe: [(#MODELE{nuage_popularite,id=4})]

      (la virgule avant le paramètre plutôt que des accolades suppl.)

    Reply to this message

  • 3

    Mon observation confirme la précédente de *?* le 13 Juillet, mais pas celle de Gilles.

    Chez moi, l’insertion :

    [(#MODELE{nuage}{id=7})]

    fonctionne dans le squelette “sommaire” mais pas dans les squelettes “rubrique”, “mot” ...

    Il semble donc que le modèle ne produise son contenu que si il *n’est pas* dans une boucle de rubrique, de mot ...

    Est ce une fonctionalité que nous n’avons pas compris ou un bug ?

    • Je suis d’accord, il faut pas le mettre dans une boucle pour que ça marche

    • Si il y a quelqu’un qui s’occupe encore de ce plugin ...

      Pouvez vous nous indiquer comment on peut utiliser le nuage
      alors qu’on est dans un contexte de boucle, dans les squelettes d’articles ou de rubrique notamment.

      Une astuce, une correction à faire dans le plugin ?

    • Je constate le même phénomène, je appelle le plugin via un inclure et ça marche

    Reply to this message

  • Bonjour,

    Après la dernière contrib de Gilles, j’ai intégré la boucle MOTS, qui me renvoi bien les Titres des mots clés avec la balise #TITRE, mais quand remplace cette balise par le modèle nuage, rien ne s’affiche, ou me suis-je trompé ?


    (#TITRE =====> OK affichage des mots clés
    [(#MODELEnuage)] ======> KO Rien

    Merci d’avance.

    Reply to this message

  • Il faudrait ajouter dans le mode d’emploi dans le paragraphe “utilisation” que la balise #MODELE|nuage doit être dans une boucle mot.

    Sinon ca marche pas.

    Reply to this message

  • Fonctionne pas avec Spip 2.1 / Nuage 1.5 ?

    Le nuage n’apparait pas, l’appel ne fonctionne pas avec aucun des id_groupe de mot clés ..

    fonctionné parfaitement sous Spip 2.010 pourtant ..

    Autres plugins installés : Spiplistes/cfg/bonux et contact avancé

    Reply to this message

  • J’ai bien téléchargé le plugin, que j’utilise avec Sarka. En insérant nuage1|popularite dans un article, j’obtiens bien quelque chose à la fin de chaque article. Mais je voudrais savoir :

    1. Si je peux créer par la méthode habituelle un groupe de mots-clefs avec des mots-clefs pré-déterminés et ce serait ceux-là qui s’afficheraient. Et si c’est possible, quel modèle utiliser.

    2. Comment faire pour que les tags s’affichent, non pas à la fin des articles mais dans la page Sommaire.

    Que les chevronnés excusent ces questions très élémentaires mais quand on débute, Spip est une vraie jungle et j’ai beau chercher, pas moyen de trouver un “pas à pas” facile d’accès !

    Reply to this message

  • Eric Le Meur

    Bonjour,

    j’avais posté une info en octobre 2009, pour dire que j’avais des problèmes d’affichage avec une version spip 2.09 et ce plugin : http://www.spip-contrib.net/Nuage-de-mots-cles#forum421728

    Je vous informe qu’avec la version actuelle du plugin (modifiée le 28/11/2009) et spip 2.0.10 je n’ai plus de problème, et que le plugin fonctionne parfaitement.

    Merci à ceux qui ont trouvé la solution !! Et bonne année !!

    Reply to this message

  • http://www.spip-contrib.net/Nuage-de-mots-cles#forum423322

    Merci NAT33.

    J’ai effectivement changer les nom de variables et cela semble fonctionner correctement.
    Pour info , j’ai copié le squelette modeles/nuage.html dans mon dossier de squelettes et remplacé :

    id_groupe==^((#ENV id ,.*))$id_groupe!==^((#ENV notid ,-1))$

    par

    id_groupe==^((#ENV idgroupe ,.*))$id_groupe!==^((#ENV notidgroupe ,-1))$

    ++

    Reply to this message

  • Oups, je me réponds à moi-même...
    Les mots du groupe Glossaire n’étaient affectés à aucun article et ne servaient qu’a créer le glossaire, et donc ne s’affichaient pas... tout simplement :)

    Reply to this message

Add a comment

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 / PostgreSQL
  • 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 apparait.

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.

Who are you?
[Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom