Вы здесь

Как программно запустить вьюс с применённым фасетным фильтром?

0

Очень буду признателен за пример.
Нашёл такой пример https://www.drupal.org/node/1937174 , но он используется в хуке. А мне бы без хука.

Версия Drupal: 
7.x
Связанные проекты: 
Views
Вопрос задан 04.04.2017 - 15:15

Так а что Вам мешает реализовать это через хук ?
View при формировании этим хуком обработается и будет уже отфильтрован.

Комментарий оставлен 04.04.2017 - 20:45

xandeadx, теперь ясно из ответа. А как ещё можно "запустить вьюс"?
roman-yakimkin, в хук неудобно передавать эти самые параметры фильтрации. Плюс у меня этот же вьюс используется для вывода материалов на странице, там пользователь сам применяет какие нужно фасеты, пришлось бы ставить дополнительные флаги, чтобы понять кто запускает вьюс - пользователь или мой код.

Комментарий оставлен 05.04.2017 - 16:55

Ответы

0
  $view_name = 'catalog_search_api';
  $display_id = 'page';

  $view = views_get_view($view_name);
  $view->set_display($display_id);
  $view->set_arguments(array('1414'));
  $view->pre_execute();

  $view->build($display_id);

  $query = $view->query->getSearchApiQuery();
  $filter = $query->createFilter('AND');
  $filter->condition('field_manufacturer', 351, '=');
  $query->filter($filter);

  $view->execute();

  $result = $view->result;
Ответ дан 05.04.2017 - 16:49