Oui oui Albat, je vais pas tarder à mettre résolu, je touche presque au but...
Donc en suivant le lien proposé par thehawk, j'ai pu coder la fonction que je voulais, à un détail près... c'est que dans l'article sur le site en question, l'auteur fais ceci pour l'affichage des tags:
// Avec rand, à chaque tour de boucle on choisi
// une taille de police comprise entre $font_mini et $font_maxi
$fontsize = rand($font_mini,$font_maxi).'px';
Mais ça me plait pas trop, je vois pas vraiment l'intérêt d'avoir aléatoirement une taille de police différente sur un tag quelconque... du point de vue de la recherche par le visiteur ça n'apporte rien à mon avis!
Je souhaiterais plutôt modifier l'affichage des tags en fonctions de leur fréquence d'apparition dans la table où ils sont enregistrés; je ne sais pas très bien comment m'y prendre, donc si vous avez une suggestions à me faire je suis preneur! Merci beaucoup!!
Et voici le code complet de ma fonction tag:
<?php
function tags() {
function NoAccent ( $chaine ) {
$accents = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ";
$noaccents = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn";
$chaine = strtr($chaine, $accents, $noaccents);
return $chaine;
}
$gt = mysql_query('SELECT tag FROM tags');
while ($arr = mysql_fetch_array($gt)) {
$chaine_tags = $arr['tag'];
$chaine_tags = NoAccent($chaine_tags);
$remplace = array(' de ', ' le ', ' la ', ' pour ', ' un ', ' une ', ' avec ', ' à ', ' et ', ' ou ', ' où ', ' pour ',
' mais ', ' donc ', ' or ', ' ni ', 'ne', ' car ', ' les ', ' quand ', ' qui ', ' quoi ', ' en ', ' on ', ' dans ',
' du ', ' des ');
$par = ' ';
$chaine_tags = str_replace($remplace, $par, $chaine_tags);
// Supprime les espace en debut et fin de chaine
$chaine_tags = trim($chaine_tags, ' ');
// On decoupe la chaine avec explode, grace au pipe |
$mots = explode(',', $chaine_tags);
// On traite la chaine pr supprimer les doublons
$mots = array_unique($mots);
// On mélange le tableau avec shuffle
shuffle($mots);
// Soit $max est = à l'ensemble du contenu du tableau
// $max = count($mots); // count renvoi le nombre total d'éléments
// Soit on spécifie un nombre max d'éléments à afficher
$max = 25; // par exemple
// pensez bien à choisir l'une ou l'autre variable ci-dessus
// Taille de police en pixel
$font_mini = 10;
$font_maxi = 18;
// Puis on affiche le nuage avec la boucle for
$nuage_tags = '';
for ( $i=0; $i< $max ; $i++ ) : // Début de boucle
// Avec rand, à chaque tour de boucle on choisi
// une taille de police comprise entre $font_mini et $font_maxi
$fontsize = rand($font_mini,$font_maxi).'px';
// plutôt qu'un echo, je préfere créé une variable $nuage_tags, que j'affiche par la suite
// A chaque tour, la variable est complétée avec le .=
$ftag = $mots[$i];
$nuage_tags .='<a style="font-size:'.$fontsize.';" href="tags.php?ltag='.$ftag.'" title="">'.$mots[$i].'</a> ';;
endfor; // Fin de boucle
// Affichage final
echo $nuage_tags; }}
?>