Créer un nuage de mots-clé

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

  • PHP
  • MySQL
  • XHTML
  • CSS
  • Javascript

html@

Pas de commentaires

Laisser un commentaire