0

我想得到这样的东西:

<div class="widgetbox">
    <legend class="widgettitle">Widget Box</legend>
    <div class="widgetcontent"> Content goes here... </div>
</div>

我的代码如下所示:

$this->addDisplayGroup(
        $fields,
        'main',
        array(
            'legend' => $this->_tlabel.'group_main',
            'decorators' => array(
                'FormElements',
                array(
                    array('widgetcontent'=>'HtmlTag'), array('tag'=>'div', 'class'=>'widgetcontent')
                    ),
                array('HtmlTag',array('tag' => 'div',  'class' => 'widgetbox')),
            )
        )
    );

我能得到的是:

<div class="widgetbox">
  <legend>Main info</legend>
    <div class="widgetcontent">
      <legend>Main info</legend>
    </div>
</div>

如您所见,我得到了双图例元素,但我只想要一个-第一个,就在div.widgetbox之后。

你能帮我从嵌套的 div中删除不需要的图例元素吗?

谢谢!

4

1 回答 1

2

您当然可以使用 anh4代替,但不能用作图例。尝试:

$this->addDisplayGroup(
    $fields,
    'main',
    array(
        'description' => 'Widget title',
        'decorators' => array(
            'FormElements',
            array(array('widgetcontent' => 'HtmlTag'), array('tag'=>'div', 'class'=>'widgetcontent')),
            array('Description', array('tag' => 'h4', 'placement' => 'prepend', 'class' => 'widgettitle')),
            array(array('widgetbox' => 'HtmlTag'), array('tag' => 'div',  'class' => 'widgetbox'))
        )
    )
);

这将添加一个描述装饰器并将其标签设置为<h4>. 我还给 widgetbox 装饰器起了别名,以便更清楚地了解它们是如何组合在一起的。这给了我:

<div class="widgetbox">
    <h4 class="widgettitle">Widget title</h4>
    <div class="widgetcontent">...</div>
</div>

就像我在评论中所说的那样,由于您的代码不包含字段集装饰器,因此我看不出您发布的内容如何包含任何图例,因此您的应用程序中似乎有一些东西正在改变装饰器在此运行之后。如果您仍在获取图例,则需要尝试找出添加它们的位置。

于 2013-07-15T13:18:10.943 回答