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