посмотрите, например, 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()
, проверить пример класса я отправил выше.
Ну, вы всегда можете свободно просматривать существующие классы форматирования – develop7
Да, но дело в том, что я не знаю, как их использовать ... :( –