четверг, 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 коммент.:
Отправить комментарий