在 yii 框架的 li 标签后添加带有 class 标签的 span

Add span with class tag after the li tag in yii framework

我是 yii 框架的新手。 我需要这样的输出 html code

<ul class="yw0">
    <li><span class="highlighter"></span><a href="#">Sign in</a>
    </li>
    <li><a href="#">Register</a>
    </li>
</ul>

代码会有些相似,但是在 li 标签之后和 a 标签之前创建额外的 <span class="highlighter"></span> 的确切代码是什么**

<?php $this->widget('zii.widgets.CMenu',array(
    'id'=>'menu',
        'items'=>array(                
            array('label'=>'Signin', 'url'=>array('/site/signin')),
            array('label'=>'Register', 'url'=>array('/site/register'))
        ),            
    )); ?>

用您自己的 class 扩展 CMenu 并覆盖 renderMenuItem,例如

protected function renderMenuItem($item)
{
    $html = parent::renderMenuItem($item)
    if(isset($item['highlighter']))
    {
         $html = "<span class='highlighter'></span>$html"
    }
    return $html;
}

然后像那样使用它:

<?php $this->widget('alias.to.your.Class',array(
    'id'=>'menu',
        'items'=>array(                
            array('label'=>'Signin', 'highlighter' => true, 'url'=>array('/site/signin')),
            array('label'=>'Register', 'url'=>array('/site/register'))
        ),            
    )); ?>

终于找到答案了。
对于全局项目

<?php $this->widget('zii.widgets.CMenu',array(
    'id'=>'menu',
    'itemTemplate' => '<span class="highlighter"></span>{menu}',
    'items'=>array(                
        array('label'=>'Signin', 'url'=>array('/site/signin')),
        array('label'=>'Register', 'url'=>array('/site/register'))
    ),            
)); ?>

对于单个项目

<?php $this->widget('zii.widgets.CMenu',array(
    'id'=>'menu',
    'items'=>array(                
        array('label'=>'Signin', 'url'=>array('/site/signin'), 'template' => '<span class="highlighter"></span>{menu}'),
        array('label'=>'Register', 'url'=>array('/site/register'))
    ),            
)); ?>