Генерация облака тегов на PHP

В итернете существует достаточно много рецептом как сделать облако тегов, и я не буду останавливаться на этой теме подробно. Основное, что мне не понравилось в примерах, что весь код был перемешан в одну кучу. Основа облака тегов - это формула определения размера тега. Вот для неё я и написал свою функцию (хелпер). А остальное, для вас не должно составить труда написать самостоятельно. В хелпере реализовано 2 формулы, для линейного расчета, и для логарифмического.

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));
	}

}
comments powered by HyperComments