タグクラウドは、ポストされたタグを、それぞれのタグの人気のヒントと共に表示します。
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"; } } }
UserMenuポートレットと異り、TagCloudポートレットはビューを使用しません。
その代わり、その表現はrenderContent()メソッドで行われます。
これは表現が、あまり多くのHTMLタグを含まないためです。
それぞれのタグは対応するタグパラメータと共に、対応するポストのインデクスページへのハイパーリンクとして表示されます。 タグのフォントの大きさは、他のタグとの相対的な重みにより調整されます。 もしあるタグがより頻繁にポストに表れるなら、そのフォントの大きさはより大きく表示されます。
TagCloudポートレットの使用 ¶TagCloudポートレットの使用はとても単純です。
レイアウトファイル/wwwroot/blog/protected/views/layouts/column2.phpを以下のように修正します。
...... <div id="sidebar"> <?php if(!Yii::app()->user->isGuest) $this->widget('UserMenu'); <?php $this->widget('TagCloud', array( 'maxTags'=>Yii::app()->params['tagCloudCount'], )); </div> ......
Be the first person to leave a comment
Please login to leave your comment.