2010-03-25 2 views
2

Я использую Symfony 1.4.3sfWidgetFormChoice отображаются как неупорядоченный список

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

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

Спасибо!

+0

Ну, вы всегда можете свободно просматривать существующие классы форматирования – develop7

+0

Да, но дело в том, что я не знаю, как их использовать ... :( –

ответ

7

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

Смежные вопросы