Для этого нужно создать свой виджет, например, такой:
class sfWidgetFormHtmlLink extends sfWidgetForm
{
protected function configure($options = array(), $attributes = array())
{
$this->addOption('url', false);
$this->addOption('target', 'self'); // self, blank
$this->addOption('route', false);
$this->addOption('name', true);
}
public function render($name, $value = null, $attributes = array(), $errors = array())
{
if($this->getOption('route')){
return link_to(
$this->getOption('name'),
$this->getOption('route'),
array('target'=>'_'.$this->getOption('target'))
);
}
if($this->getOption('url')){
return "<a href='".$this->getOption('name').
"' target='_".$this->getOption('target')."'>".
$this->getOption('name')."</a>";
}
}
}
Теперь его просто использовать:
class SomeForm extends BaseSomeForm
{
public function configure()
{
$this->setWidget('external_link',new sfWidgetFormHtmlLink(array('url'=>'http://ya.ru','name'=>'Поискать')));
}
}
Меняя метод render можно создать свой виджет по выводу какого-либо html текста и т.д.
1 комментарий:
а где создавать новые виджеты ??
Отправить комментарий