Zend Декораторы с радио-кнопками? - PullRequest
0 голосов
/ 30 июля 2011

Как превратить стандартные тэги dt и dd, предоставляемые по умолчанию в Zend, для использования ul и li для списка переключателей?

так что конечные результаты:

ul tag

Переключатель li tag 1 end li tag

Переключатель li tag 2 end li tag

переключатель метки li 3 end li tag

конец ul tag

вместо тегов dl dt.

спасибо.

1 Ответ

3 голосов
/ 30 июля 2011

Вам необходимо указать пользовательскую последовательность декораторов для элемента переключателя, например:

$this->addElement('radio', 'zipZangZowie', array(
    'decorators' => array(
        'ViewHelper',
        array(array('AddTheLi' => 'HtmlTag'), array('tag' => 'li')),
        array(array('AddTheUl' => 'HtmlTag'), array('tag' => 'ul')),
        'Errors',
        array('Description', array('tag' => 'p', 'class' => 'description')),

        // specifying the "div" tag to wrap your <label> elements is not strictly 
        // necessary, but it produces valid XHTML if your form elements are wrapped
        //  in block-level tags like "<li>" (see next comment)
        array('Label', array('tag' => 'div')),

        // uncomment the following if all of your form elements are wrapped in "<li>"
        //array('HtmlTag', array('tag' => 'li')),
    ),
    'disableLoadDefaultDecorators' => true,
    'label' => 'Zip Zang Zowie',
    'separator' => '</li><li>',
    'attribs' => array(
        'options' => array(
            'foo' => 'Option 1', 
            'bar' => 'Option 2', 
            'baz' => 'Option 3'
        ),
    ),
));

Хотелось бы, чтобы украшение форм Zend было не таким сложным. В любом случае, массив декораторов выше основан на декораторах Zend по умолчанию. Возможно, вам придется настроить их по своему вкусу. Ключевыми частями, делающими отдельные переключатели в списке, являются атрибут separator, который сообщает ZF, что помещать между каждым сегментом переключателей, и две дополнительные оболочки HtmlTag для переноса этого блока во внешний * 1006. * теги.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...