Yii のブレッドクラム ウィジェットのリンクをカスタマイズするには?
プロパティを変更できますtagName
が、コンテナ用です。a
各リンクのタグを からに変更したいli
。どうすればいいですか?
Yii のブレッドクラム ウィジェットのリンクをカスタマイズするには?
プロパティを変更できますtagName
が、コンテナ用です。a
各リンクのタグを からに変更したいli
。どうすればいいですか?
デフォルトの CBreadcrumbs ウィジェット クラスに指定できる設定/プロパティ値はありません<li>
。run()
これは、その方法を調べれば確認できます。ソースでは、これを見ることができます:
public function run(){
// code
foreach($this->links as $label=>$url)
{
if(is_string($label) || is_array($url))
$links[]=CHtml::link($this->encodeLabel ? CHtml::encode($label) : $label, $url);
else
$links[]='<span>'.($this->encodeLabel ? CHtml::encode($url) : $url).'</span>';
}
// more code
}
したがって、extend
このクラスで独自のrun
メソッドを指定する必要があります。デフォルトの代わりに<li>
orを使用できます。CHtml::tag('li',//other options)
CHtml::link
編集:
<a>
for each リンクを<li>
(置き換えるのではなく) で囲むことをお勧めしますが:
$links[]='<li>'.CHtml::link($this->encodeLabel ? CHtml::encode($label) : $label, $url).'</li>';
「activeLinkTemplate」および「inactiveLinkTemplate」プロパティでそれを行うことができます。
$this->widget('zii.widgets.CBreadcrumbs',
array('tagName'=>'ul',
'homeLink'=>'<li>'.CHtml::link('Home', array('/')).'</li>',
'activeLinkTemplate'=>'<li><a href="{url}">{label}</a></li>',
'inactiveLinkTemplate'=>'<li class="active">{label}</li>',
'htmlOptions'=> array('class'=>'breadcrumb'),
'separator'=>' / ',
'links'=>$this->breadcrumbs,
));
または、'homeLink'=>false と書くこともできます。しかし、この場合、毎回 $this->breadcrumbs でホーム URL を設定する必要があります。