タグクラウドは、個々のタグの人気度を示す視覚的な装飾を伴う投稿タグのリストを表示します。
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
ポートレットとは異なり、TagCloud
ポートレットはビューを使用しません。代わりに、そのプレゼンテーションはrenderContent()
メソッドで行われます。これは、プレゼンテーションに多くのHTMLタグが含まれていないためです。
各タグを、対応するタグパラメーターを持つ投稿インデックスページへのハイパーリンクとして表示します。各タグリンクのフォントサイズは、他のタグの中での相対的な重みに応じて調整されます。タグの頻度値が他のタグよりも高い場合は、フォントサイズが大きくなります。
TagCloud
ポートレットの使用 ¶TagCloud
ポートレットの使用は非常に簡単です。レイアウトファイル/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にあります。
コメントするには、サインアップまたはログインしてください。