Bookmark and Share

Lee's 程序人生

HTML CSS Javascript XML AJAX ATLAS C# C++ 数据结构 软件工程 设计模式 asp.net Java 数字图象处理 Sql 数据库
  博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

YiiFrameworkBlog开发向导:建立tag列表

Posted on 2010-02-24 21:50  analyzer  阅读(302)  评论(0)    收藏  举报

这将显示一个最常用的文章tag的列表,根据使用程度,对每个tag使用不同的样式进行修饰。

创建TagCloud类

我们在文件/blog/protected/components/TagCloud.php中创建TagCloud类,内容如下:

 
  1. <?php
  2. class TagCloud extends Portlet
  3. {
  4.     public $title='Tags';
  5.  
  6.     public function getTagWeights()
  7.     {
  8.         return Tag::model()->findTagWeights();
  9.     }
  10.  
  11.     protected function renderContent()
  12.     {
  13.         $this->render('tagCloud');
  14.     }
  15. }

在上面的代码中我们调用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即可。

 
  1. ......
  2. <div id="sidebar">
  3.  
  4. <?php $this->widget('UserLogin',array('visible'=>Yii::app()->user->isGuest)); ?>
  5.  
  6. <?php $this->widget('UserMenu',array('visible'=>!Yii::app()->user->isGuest)); ?>
  7.  
  8. <?php $this->widget('TagCloud'); ?>
  9.  
  10. </div>
  11. ......