Zend Form Display Group Декораторы - PullRequest
       15

Zend Form Display Group Декораторы

4 голосов
/ 10 февраля 2011

Я пытаюсь понять, как удалить метку из группы отображения, когда вы смотрите на В разметке ниже вы увидите, что есть dt с меткой адреса id и следующим dd, я хочу удалить их, но оставлю набор полей.

Чтобы добавить группу отображения, я использую эту $this->addDisplayGroup(array(...), 'legend' => 'address'); в мой класс инициализации после того, как я добавил каждый из элементов. Есть ли декораторы, с которыми я могу поиграть, чтобы удалить элемент, который я не хочу?

<form id="CreateAddress" enctype="application/x-www-form-urlencoded" action="" method="post">
    <dl class="zend_form"> 
        <dt id="address-label">&#160;</dt>
        <dd id="address-element">
            <fieldset id="fieldset-address">
                <legend>Address</legend> 
                <dl>             
                    <dt id="addressLine1-label">
                        <label for="addressLine1" class="required">Address Line 1</label>
                    </dt> 
                    <dd id="addressLine1-element"> 
                        <input type="text" name="addressLine1" id="addressLine1" value="">
                    </dd> 

                    ...etc...

            </fieldset>
        </dd> 
        ...buttons...
    </dl>
</form>

Спасибо
Martin

Ответы [ 4 ]

8 голосов
/ 26 марта 2012

Если вы хотите применить его ко всем определенным группам отображения форм Zend (для конкретной формы), более аккуратный способ:

$form->setDisplayGroupDecorators(array(
    'FormElements',
    'Fieldset',
));

ПРИМЕЧАНИЕ: это изменяет только ранее определенные группы отображения.

5 голосов
/ 14 августа 2011

Параметр removeDecorator Zend_Form_Decorator_DtDdWrapper не работал, поэтому я использовал:

$group = $form->getDisplayGroup('the name of the group');
$group->removeDecorator('DtDdWrapper');
1 голос
/ 26 января 2012

Чтобы вам не пришлось вручную удалять DtDd из каждой группы отображения по отдельности, вы можете использовать:

foreach ($this->_displayGroups as $dg){
            $dg->removeDecorator('DtDdWrapper');
        }
0 голосов
/ 10 февраля 2011

Так в чем же дело?

$group = $form->getDisplayGroup ('the name of the group');
$group->removeDecorator ('Zend_Form_Decorator_DtDdWrapper');
...