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 49 50 51 52 53 54 55 56 57 58
|
function GetOccurenceArticles($txt, $id)
{
$req_ia="SELECT titre, texte FROM tblarticles WHERE id=".$id;
$sql_ia=mysql_query($req_ia);
if(mysql_num_rows($sql_ia)>0)
{
$res=mysql_fetch_assoc($sql_ia);
return preg_match_all("/".$txt."/i", stripslashes($res['titre']), $matches1, PREG_SET_ORDER )+preg_match_all("/".$txt."/i", stripslashes($res['texte']), $matches2, PREG_SET_ORDER );
}
else
{
return '';
}
}
function tag_info()
{
$tc=array();
$total=0;
$req_ti="SELECT id, mot, id_articles FROM tblnuage WHERE activite='oui'";
$sql_ti=mysql_query($req_ti);
while($row_ti=mysql_fetch_assoc($sql_ti))
{
foreach(explode(";",$row_ti['id_articles']) as $v)
{
$total+=GetOccurenceArticles($row_ti['mot'],$v);
}
$tc[$row_ti['mot']]=$total;
}
ksort($tc);
return $tc;
}
function nuage_de_mots()
{
//Définir la taille maximal et minimal des caractères
$min_size=6;
$max_size=20;
$tags=tag_info();
$minimum_count=min(array_values($tags));
$maximum_count=max(array_values($tags));
$spread=$maximum_count-$minimum_count;
if($spread==0)
{
$spread=1;
}
$cloud_html='';
$cloud_tags=array();
foreach($tags as $tag=>$count)
{
$tagshow=str_replace("+"," ", $tag);
$size=$max_size-($count-$minimum_count)*($max_size-$min_size)/$spread;
//Création du mot à introduire dans le nuage de mots
$cloud_tags[]='<a style="font-size:'.floor($size).'px; margin-left:'.rand(0,130).'px;" class="tag_cloud'.floor($size).'" href="../code_br/index.php?page=nuage&mot='.$tag.'" title="'.stripslashes($tag).'" alt="'.stripslashes($tag).'">'.stripslashes($tag).'</a>';
}
shuffle($cloud_tags);
return join("<br/>",$cloud_tags); |
Partager