这将显示一个最常用的文章tag的列表,根据使用程度,对每个tag使用不同的样式进行修饰。
创建TagCloud类
我们在文件/blog/protected/components/TagCloud.php中创建TagCloud类,内容如下:
- <?php
- class TagCloud extends Portlet
- {
- public $title='Tags';
- public function getTagWeights()
- {
- return Tag::model()->findTagWeights();
- }
- protected function renderContent()
- {
- $this->render('tagCloud');
- }
- }
在上面的代码中我们调用Tag类中定义的findTagWeights方法,来返回一个包含他们使用频率权重的Tag列表。一个tag被使用的越多,其权重越高,我们通过这个权重的值来控制如何显示tag
建立tagCloud的视图文件
tagCloud的视图文件被保存在 blog/protected/components/views/tagCloud.php中。tag通过TagCloud::getTagWeights()读取,每个tag都有一个超链接,链接到包含该tag的文章列表页。该链接中字体的大小由tag的权值决定。权值越高字体越大。
使用TagCloud模块
使用TagCloud模块非常简单,我们如下修改布局文件blog/protected/views/layouts/main.php即可。
- ......
- <div id="sidebar">
- <?php $this->widget('UserLogin',array('visible'=>Yii::app()->user->isGuest)); ?>
- <?php $this->widget('UserMenu',array('visible'=>!Yii::app()->user->isGuest)); ?>
- <?php $this->widget('TagCloud'); ?>
- </div>
- ......
浙公网安备 33010602011771号