В итернете существует достаточно много рецептом как сделать облако тегов, и я не буду останавливаться на этой теме подробно. Основное, что мне не понравилось в примерах, что весь код был перемешан в одну кучу. Основа облака тегов - это формула определения размера тега. Вот для неё я и написал свою функцию (хелпер). А остальное, для вас не должно составить труда написать самостоятельно. В хелпере реализовано 2 формулы, для линейного расчета, и для логарифмического.
[code] class TagCloudHelper {
public static function tagSize($count, $minCount, $maxCount, $minSize = 1, $maxSize = 10)
{
if ($count == 0)
{
return 0;
}
$diff = $maxCount - $minCount;
if ($diff == 0)
{
$diff++;
}
$diffSize = $maxSize - $minSize;
return round((($count - $minCount) / $diff) * $diffSize + $minSize);
}
public static function logTagSize($count, $minCount, $maxCount, $minSize = 1, $maxSize = 10)
{
$minCount = log($minCount + 1);
$maxCount = log($maxCount + 1);
if ($count == 0)
{
return 0;
}
$diffSize = $maxSize - $minSize;
$diffCount = $maxCount - $minCount;
return round($minSize + (log(1 + $count) - $minCount) * ($diffSize / $diffCount));
}
} [/code]
11.11.2016