標籤雲 顯示文章標籤列表,並以視覺裝飾提示每個標籤的熱門程度。
TagCloud
類別 ¶我們在 /wwwroot/blog/protected/components/TagCloud.php
檔案中建立 TagCloud
類別。該檔案內容如下:
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
portlet 小工具不同,TagCloud
portlet 小工具不使用視圖。相反地,它的呈現是在 renderContent()
方法中完成的。這是因為呈現內容不包含太多 HTML 標籤。
我們將每個標籤顯示為連結到文章索引頁面的超連結,並帶有相應的標籤參數。每個標籤連結的字體大小會根據其在其他標籤中的相對權重進行調整。如果一個標籤的頻率值高於其他標籤,它將具有更大的字體大小。
TagCloud
Portlet 小工具 ¶TagCloud
portlet 小工具的使用方式非常簡單。我們修改佈局檔案 /wwwroot/blog/protected/views/layouts/column2.php
如下:
...... <div id="sidebar"> if(!Yii::app()->user->isGuest) $this->widget('UserMenu'); $this->widget('TagCloud', array( 'maxTags'=>Yii::app()->params['tagCloudCount'], )); </div> ......
發現錯字或您認為此頁面需要改進嗎?
在 github 上編輯 !
什麼是 tagCloudCount?
您需要修改您的 config/main.php 檔案,並在
.'params'
下新增一行,內容如下:什麼是 getTagWeigths?
我找不到 getTagWeigths 這個函式,所以我自己寫了一個
希望這有幫助。
findTagWeights
findTagWeights 可以在 /wwwroot/yii/demos/blog/protected/models/Tag.php 中找到
註冊 或 登入 才能評論。