четверг, 19 февраля 2015 г.

Простенькое облако тэгов!!

Простенькое облако тэгов!!
Писал его программист, которому дал тестовое задание!!!
PHP код:
<?php if(!defined("DNREAD")) exit();
global 
$setting,$db,$basepref; $tegs = $db->query("SELECT * FROM ".$basepref."_article");
 while(
$r = $db->fetchrow($tegs)) {
     if (!empty(
$r[keywords])) $z=$z.",".$r[keywords];
    } 
$tags=explode(",",$z);
foreach (
$tags as $t) {
if (
$t=="") unset ($t);
} 
$minSize=10; //минимальный размер шрифта $maxSize=26; //максимальный размер шрифта
 // расчитаем частоты тегов
  
$tags_list = array();  
  foreach (
$tags as $tag_name) {
        
$count = 0;  
        foreach (
$tags as $tag) {  
               if (
$tag == $tag_name) {  
                   
$count++;  
            }  
        }  
            
$tags_list[$tag_name] = $count;  
        }   
$minWeight=min($tags_list); //минимальный вес тега $maxWeight=max($tags_list); //максимальный вес тега  $tegi=array(); //вычислим размер шрифта тегов foreach ($tags_list as $tag=>$tagWeight) {
    
//шрифт по логарифмическому закону
    
$font= floor( (log($tagWeight + 1) - log($minWeight + 1)) / (log($maxWeight + 1) - log($minWeight + 1)) * ($maxSize - $minSize) + $minSize );
    
//добавим в массив
    
$tegi[]='<a href="" style="font-size:'.$font.'px">'.$tag.'</a>';
} 
//теперрь перетасуем и выведем shuffle($tegi);
return 
implode(' ',$tegi); ?>

0 коммент.:

Отправить комментарий