Php 如何修改zii.widgets.cbreadcrumps自动生成的html?

Php 如何修改zii.widgets.cbreadcrumps自动生成的html?,php,yii,Php,Yii,我需要修改Yii框架小部件-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/pub

我需要修改Yii框架小部件-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>
  • 新闻
那我该怎么改变呢

  • 如果您使用的是最新版本的,则中有几个新选项,即:
    activeLinkTemplate
    inactiveLinkTemplate
    ,使用这些选项(以及
    标记名
    )您可以轻松地达到您的要求

    您只需要为这些选项添加值,在包含面包屑小部件的文件中,默认情况下,它位于布局文件:protected/views/layouts/main.php中,如下所示:

    <?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?>
    
  • 如果您使用的是1.1.11之前的版本,则必须
    扩展CBreadcrumbs类,并修改
    run()
    方法以输出面包屑,这些面包屑包含在
  • 中。一旦您看到现有的
    run()
    方法,您就会非常清楚如何执行它

  • 编辑:

    遗漏了如何添加css类。您可以通过在此小部件的htmlOptions数组中添加一个类键值来完成此操作:

    <?php $this->widget('zii.widgets.CBreadcrumbs', array(
        'links'=>$this->breadcrumbs,
    
        'tagName'=>'ul', // will change the container to ul
        'htmlOptions'=>array('class'=>'menu'),
        // ... rest of the code ...
     )); ?><!-- breadcrumbs -->
    
    
    
    您使用哪个版本的yii?还添加了声明css类的部分
    <?php $this->widget('zii.widgets.CBreadcrumbs', array(
        'links'=>$this->breadcrumbs,
    
        'tagName'=>'ul', // will change the container to ul
        'htmlOptions'=>array('class'=>'menu'),
        // ... rest of the code ...
     )); ?><!-- breadcrumbs -->