Tag cloud menampilkan daftar tag post dengan tampilan visual yang menunjukkan popularitas tiap tag.
TagCloud
¶Kita membuat class TagCloud
di dalam file /wwwroot/blog/protected/components/TagCloud.php
. File tersebut berisi :
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";
}
}
}
Tidak seperti portlet UserMenu
, portlet TagCloud
tidak menggunakan view. Sistem penampilannya dilakukan oleh method renderContent()
. Alasannya karena tampilannya yang tidak mengandung terlalu banyak tag HTML.
Kita menampilkan setiap tag sebagai hyperlink ke post halaman index dengan parameter tag bersangkutan. Ukuran font untuk setiap link tag diatur sesuai dengan berat terhadap tag-tag lainnya. Jika sebuah tag memiliki nilai frekuensi yang lebih tinggi dibandingkan yang lainnya, maka ukuran font-nya akan lebih besar.
TagCloud
¶Penggunaan portlet TagCloud
sangat sederhana. Kita mengubah file layout /wwwroot/blog/protected/views/layouts/column2.php
menjadi berikut,
...... <div id="sidebar"> if(!Yii::app()->user->isGuest) $this->widget('UserMenu'); $this->widget('TagCloud', array( 'maxTags'=>Yii::app()->params['tagCloudCount'], )); </div> ......
Found a typo or you think this page needs improvement?
Edit it on github !
Signup or Login in order to comment.