Symfony sfWidgetFormSelect z nieaktywnymi opcjami

Author: Wojtek Sznapka (wojciech.sznapka) | maj 25th, 2010
avatar

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: , ,

Podyskutuj na ten temat:

One Response to “Symfony sfWidgetFormSelect z nieaktywnymi opcjami”

  1. [...] 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 [...]

Leave a Reply