sfWidgetFormSelect nie daje możliwości wyświetlania nieaktywnych opcji. Jest to rzadko wykorzystywana właściwość elementu select, ale czasami może się na prawdę przydać :-) Pomimo to, możemy uzyskać tą funkcjonalność poprzez stworzenie własnego widgetu, który dziedziczy z sfWidgetFormSelect. Kod klasy znajduję się poniżej. W tym przypadku nieaktywne opcje, to te które mają ujemne value. Można oczywiście ustawiać inne opcje na nieaktywne, wystaczy odpowiednio zmodyfikować metodę disableCondition.
class myWidgetFormSelect extends sfWidgetFormSelect
{
public function renderContentTag($tag, $content = null, $attributes = array())
{
if ($tag == 'option' && isset($attributes['value'])
&& $this->disableCondition($attributes['value'])
) {
$attributes['disabled'] = 'disabled';
}
return parent::renderContentTag($tag, $content, $attributes);
}
protected function disableCondition($value)
{
return (int)$value < 0;
}
}
Tags: php, sfWidgetFormSelect, symfony
[...] This post was mentioned on Twitter by XSolve, Wojciech Sznapka. Wojciech Sznapka said: I've posted blog post (PL) on xlab "#Symfony sfWidgetFormSelect z nieaktywnymi opcjami" http://bit.ly/cFCsbt [...]