Как можно исключить из облака некоторые теги?...

Возник вопрос, каким образом из облака тегов можно (и можно ли вообще) исключить теги, которые были проставлены при добавлении опросов и топиков-ссылок.

Или может каким то образом можно просто исключать из облака некоторые теги, прямым их перечислением?

3 комментария

avatar
1. Можно «в лоб».
Открывайте /classes/blocks/BlockTags.class.php
Находите строку
$aTags=$this->oEngine->Topic_GetTopicTags(70);

Меняйте на

$aTags=$this->oEngine->Topic_GetTopicTags(70);
$aExclude = array('tag1', 'tag2');
foreach ($aTags as $sKey=>$oTag) {
	if(in_array($oTag->getText(),$aExclude)) {
		unset($aTags[$sKey]);
	}
}

tag1, tag2 будут исключены из облака.

2. Более грамотный вариант — в модуль Topic, в функцию GetTopicTags добавьте второй аргумент $aExcludeTags — массив не нужных тегов. Этот же параметр передавайте в mapper (функция GetTopicTags). И там в $sql добавьте
WHERE tt.topic_tag_text NOT IN (?a)

Соответственно,
$aRows=$this->oDb->select($sql,$iLimit)

превратиться в
$aRows=$this->oDb->select($sql,$aExcludeTags,$iLimit)
avatar
Буду пробовать, огромное спасибо!
avatar
Пользуйтесь на здоровье :)
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.