Je souhaite afficher un paquet de mots-clés, ceux-ci devant être plus ou moins gros en fonction de leur importance.
Pour les besoins d’un site nécessitant une navigation transversale par thèmes, je décide d’utiliser amplement les mots-clés de SPIP. Je souhaite afficher un nuage de mots (tagcloud), ceux-ci devant être plus ou moins gros en fonction de leur importance (exemple ci-contre).
Un mot-clé important est un mot souvent utilisé, c’est-à-dire lié à plusieurs articles. Il est logique d’utiliser la balise #TOTAL_BOUCLE
qui sert précisément à compter le nombre total de résultats affichés par une boucle (expliquée à cette page du site SPIP : La syntaxe des boucles).
L’idée est donc de compter le nombre d’articles pour chaque mot-clé. Le nombre total d’articles, plus ou moins important, servira à varier la taille de police du mot, plus ou moins grosse.
Je construis donc une boucle permettant d’afficher les mot-clès, de la façon la plus ordinaire. Puis j’encadre chaque mot (#TITRE
) d’une balise span
permettant de styler ledit mot, avec la propriété CSS font-size
, qui fixe la taille de police.
Voici enfin le code à inclure dans le squelette (ceci ne peut se faire que directement dans le squelette, et non pas dans la feuille de style externe, puisqu’on utilise une boucle pour calculer la taille de police) :
<!-- Menu de navigation mots-cles -->
<B_mots>
<div class="menu">
<h2><:mots_clefs:></h2>
<BOUCLE_mots(MOTS){par titre}>
<span <BOUCLE_articles(ARTICLES){id_mot}> </BOUCLE_articles>style="[font-size: (#TOTAL_BOUCLE)px;]"</B_articles>style="display: none;"<//B_articles>>
<a href="#URL_MOT"[ title="(#DESCRIPTIF|textebrut|attribut_html)"][ class="(#EXPOSER)"]>#TITRE</a>
</span>
</BOUCLE_mots>
</div>
</B_mots>
Remarques
- Cette boucle n’affiche pas les mots-clés non attribués et permet d’exposer le mot-clé sélectionné.
- Selon le besoin, on choisira une autre unité (
em
ou%
) de taille de police. - Cette boucle ne convient pas à tous les usages, en particulier aux cas où les mot-clés sont très inégalement répartis : lorsqu’on a des mots dont le nombre d’articles associés varie par exemple entre 1 et 200, il est difficile d’obtenir une représentation satisfaisante.
- On peut aussi préférer un autre critère d’importance. Par exemple, la taille des thèmes de rezo.net est fonction des articles référencés et de leur popularité, c’est-à-dire selon leur fréquentation par les visiteurs du portail.
Vos commentaires
1. Le 13 mars 2006 à 18:53, par Nicolas Hoizey
En réponse à : Des mots-clés affichés plus gros selon leur importance
Le problème de cette solution, c’est qu’elle n’est pas accessible, seule la taille « visible » est modifiée, donc un utilisateur de synthèse vocale ne verra qu’une liste (et encore, c’est une suite de spans, et non une liste) sans importance relative entre ses éléments.
La solution proposée sur SPIP-Contrib n’est donc pas plus satisfaisante.
J’ai tenté de faire
2. Le 7 juin 2006 à 23:56, par Romy Têtue
En réponse à : Des mots-clés affichés plus gros selon leur importance
À consulter, cet article très documenté sur ce sujet : « Les nuages d’étiquettes (Tags Clouds) appliqués dans le CMS SPIP et un regard sur le Nébuloscope de Jean Véronis », par François Daniel Giezendanner, juin 2006.
3. Le 17 janvier 2007 à 07:54, par Nicolas FROIDURE (projet Spip Typo)
En réponse à : Des mots-clés affichés plus gros selon leur importance
Il faut faire comme ça en XHTML :
Et en CSS :
Répondre à cet article
Suivre les commentaires :
| 