我需要修改Yii框架widget-zii.widgets.CBreadcrumbs。 默认情况下会打印:
<div class="breadcrumbs">
<a href="/dr/dr/public_html/">Home</a> » <span>News</span></div>
但我需要:
<ul class="menu">
<li><a href="/dr/dr/public_html/">Home</a></li>
<li>News</li>
</ul>
那我怎么能改变呢?
答案 0 :(得分:13)
如果您使用的是Yii (1.1.11)的最新版本,则CBreadcrumbs中有一些新选项,即:activeLinkTemplate
和{ {1}}并使用这些(以及inactiveLinkTemplate
)您可以轻松达到您的要求。
您只需要在包含breadcrumb小部件的文件中添加这些选项的值,默认情况下,它位于布局文件中: protected / views / layouts / main.php ,像这样:
tagName
<?php if(isset($this->breadcrumbs)):?>
<?php $this->widget('zii.widgets.CBreadcrumbs', array(
'links'=>$this->breadcrumbs,
'tagName'=>'ul', // will change the container to ul
'activeLinkTemplate'=>'<li><a href="{url}">{label}</a></li>', // will generate the clickable breadcrumb links
'inactiveLinkTemplate'=>'<li>{label}</li>', // will generate the current page url : <li>News</li>
'homeLink'=>'<li><a href="'.Yii::app()->homeUrl.'">Home</a></li>' // will generate your homeurl item : <li><a href="/dr/dr/public_html/">Home</a></li>
)); ?><!-- breadcrumbs -->
<?php endif?>
生成有效/可点击链接的链接,'activeLinkTemplate'
生成无法点击且没有网址的当前网址。
'inactiveLinkTemplate'
和{url}
是每个视图的痕迹导体对象提供的 url 和标签值。例如: -
{label}
如果您使用的是1.1.11之前的版本,那么您必须// in some view.php file, you'll see this
$this->breadcrumbs=array( // array is label=>url
'Label1'=>array('route1'),
'Label2'=>array('route2'),
'Label3',
);
CBreadcrumbs类并修改extend
方法以输出包含在run()
中的面包屑。一旦您看到现有的<li>
方法,您就会非常清楚如何做到这一点。
修改强>
错过了如何添加css类。您可以通过在此小部件的htmlOptions数组中添加类键值来完成此操作:
run()