Облако тегов отображает список тегов записей с визуальным оформлением, показывающим популярность каждого тега.
TagCloud
¶Мы создаем класс TagCloud
в файле /wwwroot/blog/protected/components/TagCloud.php
.
Содержимое файла:
Yii::import('zii.widgets.CPortlet');
class TagCloud extends CPortlet
{
public $title='Tags';
public $maxTags=20;
protected function renderContent()
{
$tags=Tag::model()->findTagWeights($this->maxTags);
foreach($tags as $tag=>$weight)
{
$link=CHtml::link(CHtml::encode($tag), array('post/index','tag'=>$tag));
echo CHtml::tag('span', array(
'class'=>'tag',
'style'=>"font-size:{$weight}pt",
), $link)."\n";
}
}
}
Портлет TagCloud
, в отличие от портлета UserMenu
, не использует отображение.
Вместо этого его внешний вид формирует метод renderContent()
так как нет
необходимости выводить большое количество HTML.
Мы отображаем каждый тег как ссылку на список записей, содержащих его. Размер шрифта каждой такой ссылки изменяется в зависимости от относительного веса тега по отношению к остальным. Чем более часто используется тег, тем больший используется размер шрифта.
TagCloud
¶Использовать портлет TagCloud
очень просто. Мы изменяем файл макета
/wwwroot/blog/protected/views/layouts/column2.php
следующим образом:
… <div id="sidebar"> if(!Yii::app()->user->isGuest) $this->widget('UserMenu'); $this->widget('TagCloud', array( 'maxTags'=>Yii::app()->params['tagCloudCount'], )); </div> …
Found a typo or you think this page needs improvement?
Edit it on github !
Signup or Login in order to comment.