Облако тэгов отображает список тэгов записей с визуальным оформлением, показывающим популярность каждого тэга.
TagCloud
¶Мы создаем класс TagCloud
в файле /wwwroot/blog/protected/components/TagCloud.php
.
Содержимое файла:
class TagCloud extends Portlet { public $title='Tags'; public function getTagWeights() { return Tag::model()->findTagWeights(); } protected function renderContent() { $this->render('tagCloud'); } }
В коде выше мы вызываем метод findTagWeights
, который определен в классе
Tag
. Метод возвращает список тэгов с их относительными весами. Если тэг
связан с большим количеством записей, он получает более высокий вес. Мы будем
использовать веса для управления отображением тэгов.
tagCloud
¶Представление tagCloud
сохранено в файле /wwwroot/blog/protected/components/views/tagCloud.php
.
Для каждого тэга, возвращенного методом TagCloud::getTagWeights()
,
представление отображает гиперссылку, которая ведет к странице записей,
относящихся к данному тэгу. Размер шрифта ссылки определен согласно значению
веса тэга. Чем выше вес, тем больше размер шрифта.
TagCloud
¶Использовать портлет TagCloud
очень просто. Мы изменяем файл макета /wwwroot/blog/protected/views/layouts/main.php
следующим образом,
...... <div id="sidebar"> $this->widget('UserLogin',array('visible'=>Yii::app()->user->isGuest)); $this->widget('UserMenu',array('visible'=>!Yii::app()->user->isGuest)); $this->widget('TagCloud'); </div> ......
Signup or Login in order to comment.