1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| <?php
// Fonction getTags
function getTags($minFont, $maxFont) {
$tags = array();
$cloud = array();
// Récupérer les tags de la BDD
$query = mysql_query("SELECT q FROM requetes WHERE rub='all' ORDER BY q ASC");
while($t = mysql_fetch_array($query)) {
$db = explode(', ', $t[0]);
while(list($key, $value) = each($db)){
$tags[$value] += 1;
}
}
// Récupérer le nombre de tags
$min = @min(array_values($tags));
$max = @max(array_values($tags));
$fix = ($max - $min == 0) ? 1 : $max - $min;
// Afficher le nuage
foreach ($tags as $tag => $count) {
// Sélection des éléments les plus pertinents
if($count > array_sum(array_values($tags))/count(array_values($tags)))
{
// CALCUL DE LA TAILLE
$size = $minFont + ($count - $min) * ($maxFont - $minFont) / $fix;
$cloud[] = '<a style="font-size: '. floor($size) .'px" class="cloud" href="http://www.sycarox.com/all/cheat/'. $tag .'">'. $tag .'</a>';
$cloud_tag[] = $tag;
$cloud_count[] = $count;
}
}
// Limitation aux 10 éléments les plus pertinents
$n=min(10, count($cloud));
for ($i=0;$i<$n;$i++) {
$cloud2[$i]=$cloud[$i];
$cloud2_tag[$i]=$cloud_tag[$i];
$cloud2_count[$i]=$cloud_count[$i];
}
array_multisort($cloud_tag, SORT_ASC, $cloud_count, SORT_DESC, $cloud, SORT_ASC);
$shown = join("\n", $cloud2) . "\n";
echo $shown;
} ?> |
Partager