посмотрите на lib/vendor/symfony/lib/widget/sfWidgetFormSelect.class.php
например. По сути, вам нужно реализовать класс, расширяющий sfWidgetFormChoiceBase
, и написать в нем метод render()
. Минимальный пример будет выглядеть так:
<?php
class sfWidgetFormChoiceUnordered extends sfWidgetFormChoiceBase
{
public function render($name, $value = null, $attributes = array(), $errors = array())
{
$result = '<ul>'
$choices = $this->getChoices();
foreach ($choices as $choice) {
$result .= '<li>' . $choice . '</li>';
}
return $result .= '</ul>';
}
}
Вы можете поместить это в /lib/widget/sfWidgetFormChoiceUnordered.class.php
. Затем вам нужно установить параметр renderer_class
в виджете sfWidgetFormChoice
, как вы уже узнали. Установите имя класса, который мы только что написали: sfWidgetFormChoiceUnordered
.
Пример:
...
$this->addWidget('choice', new sfWidgetFormChoice(array(
'renderer_class' => 'sfWidgetFormChoiceUnordered'
));
...
Чтобы получить документацию по аргументам render()
, ознакомьтесь с примером класса, который я разместил выше.