Проблема с форматом переключателя Zend Form - PullRequest
0 голосов
/ 01 февраля 2011

У меня проблема с радиоэлементом в Zend_Form.

У меня есть декоратор для формы, вот это: "

$this->setElementDecorators(array(
                   'Label',
                   'ViewHelper',
                   'Errors',
                   array('HtmlTag', array('tag' => 'div', 'class' => 'clearfix')),
               ));

Работает для всех элементов формы, кроме радиокнопок. После некоторых исследований я обнаружил, что элемент input размещается внутри тегов label, а остальная часть формы содержит только текст в методе setLabel.

Есть ли способ получить это оттуда, потому что это разрушает мой макет, и я не могу понять, как сделать это правильно.

Ответы [ 3 ]

0 голосов
/ 15 марта 2011

вы можете изменить его в ZendRadio.php. Перейдите на строку 159 и измените ее на то, что вам нравится.

0 голосов
/ 15 марта 2011

Одним из решений является создание собственной версии Zend_View_Helper_FormRadio. Назовите его My_View_Helper_FormRadio и добавьте свой собственный префиксный путь к представлению (это можно сделать через файл конфигурации).

Тогда у вас будет полный контроль над внутренним рендерингом (с точки зрения ViewScript декоратора).

Если вы предоставите пример того, как вы хотите, чтобы разметка отображалась, я могу уточнить или предложить альтернативу.

0 голосов
/ 01 февраля 2011

Добро пожаловать в ZF Decorators, получите шлем. Я считаю их бесполезными, плохими, мусором и довольно непривлекательными для тех, кто хочет начать использовать ZF.

Но, войди в них! Напишите свой собственный, переопределите стандартный для кнопок радио и сделайте так, чтобы он работал для вас. Без этих знаний о ZF Decorators вы всегда будете бороться с макетом форм или прибегать к jQuery для изменения положения элементов, потому что ZF Decorators не работают так, как они хотели.

Короче, читайте документы, пишите свои и начинайте пользоваться ими.

...