Как обработать то что через него проходит? Что можно добавить или удалить из этого массива?
А вопрос собственно как добавить перед запросом дополнительный фильтр для запроса в бд?
Пока я справился хаком файла модели и в функцию getContentItems добавил $this->filterEqual('user_id', 1); чтобы отфильтровать по пользователю 1
А как это сделать через хук?
через него проходит массив $data в котором спрятаныКак обработать то что через него проходит?
$ctype = $data[0]; $model = $data[1];
можно "всё" или "ничего" или что-то между ними. Зависит от поставленных задач и предполагаемых результатов.Что можно добавить или удалить из этого массива?
А как это сделать через хук?
$model->filterEqual('user_id', 1); $data[1] = $model; // эта строка возможно лишняя. return $data;
Call to a member function filterEqual() on a non-object in.......
public function run($item){ ???????????? return $item; }
public function run($item){ $model = $item[1]; $model->filterEqual('user_id', 2); return $item; }
при формировании списка записей типа контента есть два хука, предназначенных как раз для фильтрации:content_list_filter
В хук в обоих случаях передается массив данных типа контента и объект модели компонента "контент".
Если вы хотите для всех типов контента сделать что-либо, то имеет смысл использовать хук content_list_filter, если для конкретного, то соответственно второй.
В общем случае в хуке нужно сделать как то так:
Имеем: некий контроллер "fuze"
Хотим обработать хук "content_list_filter"
Создаем хук
class onFuzeContentListFilter extends cmsAction { public function run($data){ $model->filterEqual('user_id', 1); // фильтруем по пользователю с id = 1 } }
что угодно из того, что есть, unset() в помощьЧто можно добавить или удалить из этого массива