sfWidgetFormChoice отображается как неупорядоченный список - PullRequest
2 голосов
/ 25 марта 2010

Я использую Symfony 1.4.3

Есть ли способ отобразить sfWidgetFormChoice как неупорядоченный список?

В API есть опция под названием 'renderer_class', но я не могу найти никакой документации или примера по этому поводу.

Спасибо!

1 Ответ

7 голосов
/ 06 апреля 2010

посмотрите на 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(), ознакомьтесь с примером класса, который я разместил выше.

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