Revision: 46133
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at May 13, 2011 08:14 by hisamu
Initial Code
<?php /** * Sample usage: $this->widgetSchema['type'] = new sfWidgetFormChoiceOrPlain(array('choices' => sfConfig::get('types'), 'plain' => !$this->getObject()->isNew())); * * @author Luã de Souza */ class sfWidgetFormChoiceOrPlain extends sfWidgetFormChoice { protected function configure($options = array(), $attributes = array()) { parent::configure($options, $attributes); $this->addOption('plain', false); } public function render($name, $value = null, $attributes = array(), $errors = array()) { if ($this->getOption('plain')) { $attributes = array_merge(array('class'=>'frozen'), $attributes); $hidden = new sfWidgetFormInputHidden(); $choices = $this->getOption('choices'); $label = $value ? $choices[$value] : $value; return $this->renderContentTag('div', $label, $attributes) . $hidden->render($name, $value); } else { if ($this->getOption('multiple')) { $attributes['multiple'] = 'multiple'; if ('[]' != substr($name, -2)) { $name .= '[]'; } } if (!$this->getOption('renderer') && !$this->getOption('renderer_class') && $this->getOption('expanded')) { unset($attributes['multiple']); } return parent::getRenderer()->render($name, $value, $attributes, $errors); } } }
Initial URL
http://www.lsouza.pro.br
Initial Description
Initial Title
Symfony plain/choice widget (sfWidgetFormChoiceOrPlain)
Initial Tags
php
Initial Language
PHP