Vous ne connaissez pas les tags ? C’est le dernier truc en vogue sur les blogs et compagnie.
Il s’agit d’afficher en vrac dans une boite les mots-clés associés aux articles, en faisant varier la taille de la police selon l’importance du mot-clé.
Exemples :
http://www.technorati.com/tag/
http://www.flickr.com/photos/tags/
Dans le cadre de SPIP on se limitera aux mots-clés attribués par les auteurs dans l’espace privé.
Voici deux exemples qui montrent comment faire varier la taille de la police en fonction du « score » du mot-clé, calculé à partir du nombre d’articles qui lui sont liés, ou de la popularité de ceux-ci.
- Archives de la Blogothèque, http://www.blogotheque.net/archives.php3
- Les thèmes du Portail des copains, http://rezo.net/themes
1) Le nombre d’articles associés au mot-clé
Dans cet exemple on fera varier la taille de la police entre 10px et 40px.
Pour ne pas surcharger, on a décidé de ne pas afficher, dans l’exemple ci-dessus, les mots-clés qui ne représentent pas plus de 5% du poids maximum.
2) La popularité du mot-clé
Dans cet exemple on fera varier la taille de la police de 1 à 15 en fonction de la popularité du mot-clé ; comme SPIP ne calcule que la popularité des articles, il faut additionner, pour chaque mot, les popularités de tous les articles liés à ce mot, ce qui donne le score du mot.
On modifie ensuite le profil de la répartition des valeurs avec une fonction choisie au pif pour qu’elle donne de jolies choses (en l’occurrence, ici, la fonction
qui est concave mais pas trop — elle augmente les plus gros scores sans écraser les petits)...



Vos commentaires
# Le 26 septembre 2008 à 09:05, par LR
En réponse à : Afficher les mots-clés en faisant varier la taille de la police
Salut,
Merci pour ce code qui est exactement ce qu’il me fallait. Je suis tombé sur un bug. Ce que je dis est à prendre avec précaution car je débute sur SPIP.
Il y a une division par zéro lorsque l’article d’une rubrique n’a jamais été consulté. Sa popularité est alors de zéro. Si aucun article n’a été consulté, $maxpop est = 0 et c’est là que l’erreur survient.
Voilà comment j’ai rapidement « corrigé » le problème :
...
$maxpop = @max($pop) ;
if ( $maxpop < 1 ) $maxpop = 1 ;
foreach ($titre as $id => $t)
...
Répondre à ce message
# Le 16 mars 2006 à 22:39, par DumbaDonf
En réponse à : Afficher les mots-clés en faisant varier la taille de la police
Merci pour cette contrib que j’ai mis en place sur ce site : Actu-medias.fr
Répondre à ce message
# Le 13 avril 2005 à 17:23, par Nicolas Hoizey
En réponse à : > Afficher les mots-clés en faisant varier la taille de la police
Principe déjà en place sur Gastero Prod depuis quelque temps, il faudra que je compare nos codes respectifs... ;)
# Le 6 mars 2006 à 09:29, par François Daniel Giezendanner
En réponse à : > Afficher les mots-clés en faisant varier la taille de la police
Bonjour Nicolas,
Sur votre site (http://www.gasteroprod.com/tags/), vous avez mis en place un système de Tag Cloud (affichage des mots-clés dont la taille de la police varie selon certains critères) présentés :
J’ai déjà testé tout ce qui est présenté sur divers sites SPIP en matière de Tag Cloud, mais aucun algorithme proposé ne permet le classement par ordre d’importance (il est en effet facile d’insérer les critères par titre, inverse, par hasard dans les boucles SPIP).
Pourriez-vous nous communiquer vos codes (algorithme) qui donnent sur Gastero Prod : http://www.gasteroprod.com/tags/ un résultat du plus bel effet ?
Dans cette attente et avec mes meilleurs messages.
François Daniel Giezendanner
Répondre à ce message
# Le 14 décembre 2006 à 21:56, par James
En réponse à : Afficher les mots-clés en faisant varier la taille de la police
Existe aussi en version plugin sur la zone http://zone.spip.org/trac/spip-zone...
Et c’est en démonstration sur spip.blog
# Le 2 janvier 2007 à 13:58, par erational
En réponse à : Afficher les mots-clés en faisant varier la taille de la police
L’article du plugin et sa documentation est maintenant disponible sur spip-contrib
lire Nuage (de mots-clés) - version plugin
Répondre à ce message