среда, 12 мая 2010 г.

Как взять значение фильтра из URL?

Есть сгенерированная админка. Список. Справа форма фильтрации. Как взять значение для фильтрации списка (и формы, соответственно) из URL? Очень просто.
Перегружаем в классе экшена сгенерированного модуля метод получения значения фильтров:
  protected function getFilters()
  {
    $filters=$this->getUser()->getAttribute('ИМЯ_МОДУЛЯ.filters', $this->configuration->getFilterDefaults(), 'admin_module');
    if ($ИМЯ_ПОЛЯ=$this->getRequest()->getParameter('ИМЯ_ПОЛЯ',false))
      $filters['ИМЯ_ПОЛЯ']=$ИМЯ_ПОЛЯ;
  
    return $filters;
  }

Вот и все. Теперь значения фильтров берутся из сессии, но если в переданных параметрах есть поле, по значению которого фильтруем список, то это значение добавляется (или перезатирает старое значение) в список фильтров.

Безусловно, поддается рефакторингу. Но цель поста - показать направление.

Комментариев нет:

Отправить комментарий