1
0
Fork 0
mirror of https://github.com/Oreolek/ifhub.club.git synced 2024-06-29 04:55:02 +03:00
ifhub.club/classes/blocks/BlockTags.class.php
Alexey Kachayev e089d38661 Fix
2009-09-20 18:43:20 +00:00

64 lines
1.7 KiB
PHP

<?php
/*-------------------------------------------------------
*
* LiveStreet Engine Social Networking
* Copyright © 2008 Mzhelskiy Maxim
*
*--------------------------------------------------------
*
* Official site: www.livestreet.ru
* Contact e-mail: rus.engine@gmail.com
*
* GNU General Public License, version 2:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
*
---------------------------------------------------------
*/
/**
* Обрабатывает блок облака тегов
*
*/
class BlockTags extends Block {
public function Exec() {
/**
* Получаем список тегов
*/
$aTags=$this->oEngine->Topic_GetOpenTopicTags(70);
/**
* Расчитываем логарифмическое облако тегов
*/
if ($aTags) {
$iMinSize=1; // минимальный размер шрифта
$iMaxSize=10; // максимальный размер шрифта
$iSizeRange=$iMaxSize-$iMinSize;
$iMin=10000;
$iMax=0;
foreach ($aTags as $oTag) {
if ($iMax<$oTag->getCount()) {
$iMax=$oTag->getCount();
}
if ($iMin>$oTag->getCount()) {
$iMin=$oTag->getCount();
}
}
$iMinCount=log($iMin+1);
$iMaxCount=log($iMax+1);
$iCountRange=$iMaxCount-$iMinCount;
if ($iCountRange==0) {
$iCountRange=1;
}
foreach ($aTags as $oTag) {
$iTagSize=$iMinSize+(log($oTag->getCount()+1)-$iMinCount)*($iSizeRange/$iCountRange);
$oTag->setSize(round($iTagSize)); // результирующий размер шрифта для тега
}
/**
* Устанавливаем шаблон вывода
*/
$this->Viewer_Assign("aTags",$aTags);
}
}
}
?>