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