Chmurka tagów wyświetla listę tagów wiadomości wraz z wizualnymi ozdobnikami, podpowiadającymi jak bardzo popularny jest każdy z tagów.
TagCloud ¶Tworzymy klasę TagCloud w pliku /wwwroot/blog/protected/components/TagCloud.php.
Plik ten ma następującą zawartość:
class TagCloud extends Portlet { public $title='Tags'; public function getTagWeights() { return Tag::model()->findTagWeights(); } protected function renderContent() { $this->render('tagCloud'); } }
Powyżej wywołaliśmy metodę findTagWeights zdefiniowaną w klasie Tag. Metoda ta
zwraca listę tagów wraz z ich relatywną wagą częstości. Jeśli tag powiązany jest
z większą ilością wiadomości, otrzymuje on wyższą wagę. Będziemy używali tych wag
do kontroli sposoby wyświetlania tagów.
tagCloud ¶Widok tagCloud jest zapisany w pliku /wwwroot/blog/protected/components/views/tagCloud.php.
Dla każdego tagu zwróconego przez TagCloud::getTagWeights(), wyświetla on hyperlink,
który będzie wiódł do strony wyświetlającej wiadomości zawierające ten tag. Rozmiar
czcionki tego linku zależy od wartości wagi tagu. Im większa waga, tym większy rozmiar czcionki.
TagCloud ¶Używanie portletu chmurki tagów TagCloud jest bardzo proste. Modyfikujemy wplik układu
/wwwroot/blog/protected/views/layouts/main.php w następujący sposób:
...... <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.