Fonction PHP : tag()
Ici, vous pouvez voir (et copier/coller) le code complet de la fonction PHP tag(). N'hésitez pas voter pour cette fonction si elle vous plaît ou si vous vouv en servez !
tag() ajouté le 2009-06-10 10:19:38 par yosweb
function tags($max_tags){
$chaine_tags=array();
$tab_tags=array();
$result=mysql_query("SELECT * FROM articles");
while ($tags=mysql_fetch_object($result)){
$chaine_tags[]=explode(",",$tags->tag);
}
//Remplir le tableau $tab_tags par les tags des enregistrements
for ($i=0;$i<=count($chaine_tags)-1;$i++){
for ($j=0;$j<=count($chaine_tags[$i])-1;$j++){
if (!empty($chaine_tags[$i][$j])) $tab_tags[]=$chaine_tags[$i][$j];
}
}
$mots=array_unique($tab_tags); // Supprimer les doublons
shuffle($mots); // Mélanger les tags
// Tableau des couleur aléatoires de votre choix
$tab_colors=array("#3087F8","#EC1E85","#14E414","#9EA0AB");
// Affichage des tags
for ($i=0;$i<=$max_tags-1;$i++){
$fontsize = rand(10,22).'px'; //fontsize aléatoire ici entre 10 et 22 px
$color=rand(0,count($tab_colors)-1); //La couleur aléatoir
$nuage_tags .='<a style="font-size:'.$fontsize.'; color:'.$tab_colors[$color].'; " href="recherche.php?tag='.urlencode($mots[$i]).'" title="Rechercher le tag '.$mots[$i].'">'.$mots[$i].'</a> ';
}
echo "<div class='tags'>".$nuage_tags."</div>";
}
Une fonction pour afficher un nuage de tag en php / mysql, les mot clés sont enregistrés dans une table (exp "Articles") sur un champ tag, pour utiliser cette fonction il suffi juste d'adapter les champs de votre base de données et définir le nombre maximum des tags qui seront afficher et le choix des couleurs aléatoire.
Pour plus d'info visitez le http://www.douami.com
Merci au fondateur de ce site.
Commentaires sur la fonctions php
yosweb 10/06/2009 à 12:26
Merci MaX, importante remarque de mettre en valeur les tags qui en plus de billets, je vais en penser, mais mon premier but en postant cette fonction ici c'était de partager, se faire des remarques et ensuite développer.
Black Hattitude 17/09/2009 à 07:15
Oui, c'est une bonne base, une touche de jquery à l'arrivée et on arrive vite à un jolie nuage.
MaX3315 10/06/2009 à 11:21
A mon avis il aurait préférable de passer la liste des tags (sorties de la base de données) en argument de votre fonction. La fonction serait plus facilement portable.
D'autre par il ne s'agit pas d'une vrai gestion d'un nuage de tag dont le but est normalement de mettre en valeur les tags ayant le plus d'importance. Exemple afficher en plus gros les tags qui ont le plus de billets sur le blog.. et en tout petit les plus rare...
Dernier point plutôt que d'associer une taille/couleur en dur dans le code des liens il serait préférable de mettre une classe css exemple class="tagweight1", class="tagweight2", ... en fonction de la pondération associé au tag.
Mais merci de faire partager, même si à mon goût la fonction n'est pas optimale en l'état.