Un nuage de mots-clés (tag cloud en anglais) est une représentation visuelle des mots-clés (tags) les plus utilisés sur un site web ou dans un article. Généralement, les mots-clé sont différenciés de façon plus ou moins importante afin de faciliter le repérage des plus populaires.
Un calcul simple
L'implémentation est très simple. Il suffit de compter les mots-clé les moins utilisés et ceux qui le sont le plus. L'écart entre ces deux valeurs permettra ensuite de calculer le pourcentage de popularité pour chacun d'entre eux.
La fonction suivante se contente donc de calculer ce pourcentage et appelle un callback pour chacun des mots-clé. L'utilisation d'un callback permet de créer la sortie que l'on désire et ainsi générer bien des choses passionnantes.
@php function WdCreateCloud($tags, $callback) { if (empty($tags)) { return; }
$min = min(array_values($tags));
$max = max(array_values($tags));
$mid = ($max == $min) ? 1 : $max - $min;
$rc = '';
foreach ($tags as $tag => $value)
{
$rc .= call_user_func($callback, $tag, $value, ($value - $min) / $mid);
}
return $rc;
} php@
Mise en œuvre
Voici un exemple d'application :
@php define('CLOUD_LEVELS', 8);
function _create_cloud($tag, $value, $popularity) { return
"\t<li" .
' class="tag' . (1 + ceil($popularity * (CLOUD_LEVELS - 1))) . '"' .
' title="Utilisé ' . $value . ' fois"' .
'>' .
_to_html($tag) .
"</li>\n";
}
$tags = array ( 'PHP' => 50, 'MySQL' => 10, 'XHTML' => 5, 'CSS' => 40, 'Javascript' => 45 );
echo '
- ' . "\n" . WdCreateCloud($tags, '_create_cloud') . '
' php@
Ce qui nous donnera :
@html
html@
Pas de commentaires