Добавить несколько групп элементов в одну группу отображения с помощью Zend_Form - PullRequest
3 голосов
/ 02 июля 2011

Я использую Zend_Form для вывода моей формы, и я пытаюсь сгруппировать элементы кнопок внутри и затем добавить их в набор полей.

Лучшее, что мне удалось сделать, это:

<fieldset id="fieldset-group1">
    <div class="buttons">
        <button name="submit_form" id="submit_form" type="submit">Submit</button>
        <button name="cancel_form" id="cancel_form" type="submit">Cancel</button>
    </div>
</fieldset>
<fieldset id="fieldset-group2">
    <div class="buttons">
        <button name="reset_form" id="reset_form" type="submit">Reset</button>
        <button name="button_form" id="button_form" type="button">Button</button>
    </div>
</fieldset>

где две группы элементов находятся в двух отдельных группах отображения. Я сделал это, установив параметр тега DisplayGroup HtmlTag Decorator в «div».

Чего я хочу добиться, так это:

<fieldset id="fieldset-group1">
    <div class="buttons">
        <button name="submit_form" id="submit_form" type="submit">Submit</button>
        <button name="cancel_form" id="cancel_form" type="submit">Cancel</button>
    </div>

    <div class="buttons">
        <button name="reset_form" id="reset_form" type="submit">Reset</button>
        <button name="button_form" id="button_form" type="button">Button</button>
    </div>
</fieldset>

где два div находятся в одной группе отображения.

Я надеялся, что смогу использовать опции 'openOnly' и 'closeOnly', которые доступны для HtmlTag Decorator, но они недоступны для DisplayGroups.

Помимо расширения набора Zend_View_Helper_Fieldset для выполнения того, что я хочу, есть ли лучший способ сделать это?

Ответы [ 2 ]

5 голосов
/ 04 июля 2011
'decorators'=>array('FormElements',
                     array(array('divtag'=>'HtmlTag'),'options'=>array('tag'=>'div')),
                     array(array('fstag'=>'HtmlTag'),'options'=>array('tag'=>'fieldset','openOnly'=>true)),
                   )

openOnly / closeOnly можно использовать и с DisplayGroups

0 голосов
/ 02 июля 2011

Они всегда говорят, что вы можете написать свои собственные декораторы.Что вам нужно сделать, это не расширить view_helper, а написать собственный декоратор.Декоратором здесь является не fieldset afaik, а FormElements внутри и используемый fieldset.Это декоратор FormElements, который не предназначен для работы с div, которые вы ищете.

...