Хмара тегів відображає список тегів записів із візуальним оформленням, що показує популярність кожного тега.
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.