我需要修改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>

那么我该如何改变呢?

最佳答案

  • 如果使用的是最新版本的Yii (1.1.11),则CBreadcrumbs中有几个新选项,即:activeLinkTemplateinactiveLinkTemplate,并使用它们(以及tagName)可以轻松实现您的要求。

    您只需要在包含面包屑小部件的文件中为这些选项添加值,默认情况下,它位于布局文件中: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?>
    
    'activeLinkTemplate'生成 Activity /可点击链接的链接,'inactiveLinkTemplate'生成当前不可点击且没有url的URL。
    {url}{label}是每个视图的面包屑对象提供的url和标签值。例如:-
    // in some view.php file, you'll see this
    $this->breadcrumbs=array( // array is label=>url
        'Label1'=>array('route1'),
        'Label2'=>array('route2'),
        'Label3',
    );
    
  • 如果使用1.1.11之前的版本,则必须extend CBreadcrumbs类,并修改run()方法以输出面包屑,并用<li>括起来。一旦看到了现有的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 -->
    

    关于php - 如何修改zii.widgets.CBreadcrumbs自动生成的HTML?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11886211/

    10-14 15:13
    查看更多