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

  • 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 :)

    Répondre à ce message

  • Bonjour,
    J’ai un soucis de compatibilité entre une lame du couteau suisse, le glossaire, et le plugin nuage...
    Lorsque je demande l’affichage du groupe de mots clés Glossaire ([(#MODELE{nuage}{id=3})]), il ne s’affiche pas :-/
    Par contre, ça marche nikel avec n’importe quel autre groupe de mots...
    Une idée d’ou ça peut venir ?
    Merci

    Config :
    SPIP 2.0.10 [14698]
    Le Couteau Suisse version 1.8.09.14
    Nuage version 1.4 [31399] — en test

    Répondre à ce message

  • 2
    elm31rugby

    Bonjour,

    j’ai utilisé ce plugin sous spip 1.9.2, parfait. Je suis passé sous spip 2.0, et là, surprise : le plugin fonctionne sur ma page sommaire.html, mais pas sur les pages rubriques. (avec spip 2.0.9) J’ai pensé qu’il s’agissait d’un problème lié à la mise à jour.

    J’ai donc pris un autre site nativement installé en spip 2.0 (exactement 2.0.5) et même résultat : le nuage de mots s’affiche sur la page d’accueil, mais pas dans les rubriques.

    Je suis en développement local sous Easyphp 1.8

    Je n’ai rien trouvé dans les forums. Quelqu’un aurait une idée ?

    Merci,

    Eric

    • même problème : fonctionne sur la page sommaire et une curiosité qui permettra peut-être de trouver la solution : fonctionne sur la rubrique1 et les articles de cette rubrique.

      Que devons-nous ajouter au code pour qu’il fonctionne sur toutes les rubriques et sur tous les articles ?

      Marie-Anne

    • Bonjour,

      je suis confrontée à la meme anomalie.
      le nuage s’affiche correctement sur la page d’accueil.
      mais sur la rubrique 1 il affiche les mots clé du groupe de mot 1, su rla rubrique 2, il affiche les mots clés correspondant à l’id_groupe 2 etc...

      Est-ce que cela ne viendrait pas du fait que le paramètre est du type id=1 et que du coup l’imprécision est source de confusion dans les résultats affichés... à part ça je n’ai pas su déchiffrer le code...

      Je précise que j’ai cette anomalie sans passer de paramètre.

      c’est vraiment nébuleux ce truc... ;p

      Nat33

    Répondre à ce message

  • 1

    Bonjour,

    Je teste actuellement ce plugin sur un site développé sous spip 1.9.2, et j’obtiens une erreur lors du passage en nuage de popularité, erreur que je n’ai pas en utilisant le nuage ’normal’, mais qui ne m’offre pas le résultat escompté.

    L’erreur obtenue :

    * Erreur : filtre « push » non défini, _expose

    code sans erreur :

    [(#MODELEnuageid=3)]

    code générant l’erreur :

    [(#MODELEnuage_populariteid=3)]

    Quelqu’un peut-il me mettre sur la piste ?

    D’autre part, je cherche à récupérer les id des mots clés présentés pour les reprendre dans les liens affichés sous la forme id=« def_#ID_MOT », car je souhaite afficher la description des mots clés dans un petit pop-up css.

    Là encore, quelqu’un aura-t-il la bonté de bien vouloir m’aiguiller : j’ai bien vu les fichiers et fonctions à modifier, mais n’étant pas développeur... ;)

    Merci d’avance,

    Raphaël

    • Complément : si le fichier nuage_popularite.html fait bien mention du filtre « push », il n’apparait nulle part ailleurs, la seule fonction php s’y apparentant se trouvant dans le fichier 193_fonctions.php sous la forme de «  function filtre_push » :

      function filtre_push($array, $val)
      if($array == ’’ OR !array_push($array, $val)) return ’’ ;
      return $array ;

    Répondre à ce message

  • 1

    Bonjour,

    J’utilise ce plugin avec le model ’nuage_popularite’ afin d’afficher des mots clefs contenu dans un groupe de mot clé défini.
    Chaque mot clef de ce groupe est relié à un unique article.
    Comment faire pour que les mots du nuage pointent vers l’article auxquels il est associé ?

    Merci.

    • rzawutang44

      a mon avis meme avec 2 boucles imbriques (MOTS puis ARTICLES) t’es coince a chaque fois

      exemple 1 :

      <BOUCLE_liste_les_mots_cles» (MOTS) { ××× } >
      	<BOUCLE_art(ARTICLE) { id_mot } { ××× }>
      		<a href=#URL_ARTICLE>#TITRE</a>
      	</BOUCLE_...>
      </BOUCLE_...>

      sauf que la le TITRE ca sera le titre de l’article et pas celui du mot cle donc probleme. Donc l’idee serait de placer le lien entre les 2 boucles pour que #TITRE fasse bien reference au mot cle mais on arrive sur un autre probleme, ci-dessous :

      exemple 2 :

      <BOUCLE_motscles (MOTS) { ××× } >
      	<a href=?????>#TITRE</a>
      	<BOUCLE_articles (ARTICLE) { id_mot } { ××× }>
      		xxxxxxxxxxxxx
      	</BOUCLE_...>
      </BOUCLE_...>

      Les ???? veulent dire que tu veux une URL d’article mais que la boucle est juste en dessous donc pas possible non +.

      Ton probleme doit bien avoir une solution que je ne connais vraisemblablement pas. Le soucis est que tu cherhe a faire pointer un mot cles vers une URL d’article. T’as pt etrer une solution + simple , a mon avis, pt etre sans mots cles....

    Répondre à ce message

  • 1
    magik_cypress

    Dernière petite retouche et j’arrête de flooder ce forum (fallait pas me lancer ;)

    Si vous souhaitez que les mots soit de taille différente dans votre nuage modifier la ligne 30 du fichier nuage_fonctions.php

    Remplacer

    'class' => $s,

    par

    'class' => $id,

    Ce qui donne dans le code de vos pages ceci :

    	<a rel="tag" href="spip.php?mot15
    
    " class="nuage15">Handicap</a>
    	<span class="frequence"> (19/19)</span>
    
    </li>

    Ensuite, il faut jouer avec la feuille de style nuage.css

    • rzawutang44

      Salut
      Super plugin mais j’ai le soucis suivant :

      Ne fonctionne pas avec spip 2.0.9
      Cache vidé, fichier php modifié ($id ou lieu de $s), tailles en « em » dans le fichier « nuage.css » modifiées (nuage0,... nuage10) mais les styles restent inchangés lorsque je recharge la page du site.

      J’appelle le nuage dans mon squelette sommaire.html de cette facon :

      [(#MODELE{nuage_popularite}{id=2})]


      puisque seul le groupe (de mots cles) numéro 2 m’intéresse.

      Dans le code source j’ai toujours (je copie juste pour un seul mot clé) :

      <li>
      	<a rel="tag" href="spip.php?mot6">
      		<font size="15">PAT2</font>
      	</a>
      	<span class="frequence">(20/20)</span>
      </li>

      On retrouve cette ligne de code

      <font size="15">PAT2</font>

      Le seul fichier du plugin nuage qui utilise la balise < font > est le fichier foreach_nuage_pop.html.
      La ligne correspondante est

      <font size="[(#ENV{taille}|sinon{0})]">#ENV{cle}</font>

      Donc ca vient d’ici ? Je dois changer cette ligne de code par quoi ?

      Merci

    Répondre à ce message

  • François Schreuer

    Merci d’ignorer le message précédent. J’ai trouvé la solution : le modèle se trouvait dans le contexte d’une boucle (SITES). En la retirant, ça marche.

    Répondre à ce message

  • François Schreuer

    J’utilise le nuage, qui fonctionne bien. Mais, très curieusement, l’appel au modèle ne fonctionne que sur la page d’accueil du site. Si je place l’appel dans une page secondaire du site ou dans un squelette inclus, il ne renvoie plus rien. Une idée ?

    Répondre à ce message

  • Salut à tous

    Je suis sous SPIP 2.0.3, et le plugin marche très bien.

    J’ai juste une requête, j’aimerais qu’il y ait un tiret entre chaque mot-clé, histoire que ça rend le tout plus aéré.

    Seulement, je n’ai pas trouvé comment faire...Quelqu’un peut me donner une piste ? D’avance merci !

    Répondre à ce message

  • Bonjour

    J’ai fais un commit hier pour rajouter deux modeles [(#MODELEnuage_site)] et [(#MODELEnuage_pop_site)] mais à quoi servent-ils ? En fait si vous attribuer des mots clefs à un sites et bien vous pouvez désormais faire votre nuage avec.

    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