Похоже, лучшее решение основано на ответе выше белка. Поскольку входные данные внутри метки жестко запрограммированы, лучшим решением будет изменить это поведение. Вы можете сделать это, изменив класс Zend_View_Helper_FormRadio, или переопределить его собственным заголовком представления. Я бы порекомендовал опцию настраиваемого заголовка, так как модификация Zend Framework была бы плохой идеей, поскольку она требовала бы обновления каждый раз, когда вы обновляете Framework, влияла бы на кого-либо или любой проект, использующий эту копию Framework и т. Д. Используя специальный помощник, это будет специфичным для проекта и не повлияет на что-либо еще, а также не повлияет на обновление инфраструктуры (однако вы можете обнаружить, что вам нужно обновить помощника, если обновление платформы изменило некоторые поведения). То, что я сделал, работает хорошо:
1 - Создал модель / модуль в библиотеке, я назвал мой сайт. Сначала необходимо создать в библиотеке папку с тем же именем, что и модель. Таким образом, у меня есть библиотека> веб-сайт
Редактировать: Забыл сказать, что вам нужно будет зарегистрировать библиотеку плагинов либо через загрузчик или application.ini. Я считаю, что проще всего добавить:
autoloaderNamespaces [] = "Веб-сайт _"
В любом месте под appnamespace
2 - Я создал соответствующие подпапки и файл для класса Website_View_Helper_FormRadio, который переопределит Zend_View_Helper_FormRadio. Таким образом, структура папок и файлов
website> view> helper> FormRadio.php
3 - Затем я скопировал содержимое функции formRadio из Zend_View_Helper_FormRadio в Website_View_Helper_FormRadio внутри класса. Затем я изменил его с помощью кода, на который ссылается белка, таким образом класс Website_View_Helper_FormRadio, который наследуется от Zend_View_Helper_FormRadio, примерно так:
class Website_View_Helper_FormRadio extends Zend_View_Helper_FormRadio
{
public function formRadio($name, $value = null, $attribs = null, $options = null, $listsep = "<br />\n")
{
// The code from the formRadio function in Zend_View_Helper_FormRadio with
// the modification from the code squirrel referred to
}
}
Это дает нам собственную копию класса с нашим измененным кодом, который наследуется от Zend-версии элемента FormRadio.
Теперь вы можете просто использовать элемент Zend Form Radio как обычно, и он будет использовать наши улучшения
Обратите внимание, что если вы хотите иметь такой же эффект на MultiCheckbox или флажок, вам нужно, чтобы они использовали нашу версию формы радио, поскольку эти элементы используют форму радио в качестве основы. Для этого мы создаем наши собственные версии в нашей библиотеке и заставляем их наследовать от нашей версии. Поэтому мы должны иметь для multiheckbox следующее:
library> website> view> helper> FormMultiCheckbox.php
Будет копией Zend_View_Helper_FormMultiCheckbox
Затем замените строку:
class Zend_View_Helper_FormMultiCheckbox extends Zend_View_Helper_FormRadio
с:
class Website_View_Helper_FormMultiCheckbox extends Website_View_Helper_FormRadio
Надеюсь, это кому-нибудь поможет.