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