Advertisement
Sadchenko

Программный вывод VIews

Mar 30th, 2018
256
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.98 KB | None | 0 0
  1. $view = views_get_view('foo');
  2.  
  3. // устанавливаем активный дисплей
  4. $view->set_display('page');
  5.  
  6. // устанавливаем значения аргументов (контекстных фильтров)
  7. $view->set_arguments(array(123, 456));
  8.  
  9. // устанавливаем значения раскрытых фильтров (field_category_tid это имя параметра, передающегося в $_GET)
  10. $view->set_exposed_input(array('field_category_tid' => 123));
  11.  
  12. // изменяем количество записей на страницу
  13. $view->set_items_per_page(10);
  14.  
  15. // устанавливаем страницу (страницы считаются с нуля)
  16. $view->set_current_page(2);
  17.  
  18. // добавляем сортировку по node.created (возможно только для таблиц участвующих в выборке)
  19. $view->add_item($view->current_display, 'sort', 'node', 'created', array('order' => 'DESC'));
  20.  
  21. // добавляем фильтр по node.created (возможно только для таблиц участвующих в выборке)
  22. $view->add_item($view->current_display, 'filter', 'node', 'created', array(
  23.   'operator' => '>',
  24.   'value' => array(
  25.     'value' => '-7 day',
  26.   ),
  27. ));
  28.  
  29. // изменяем значение фильтра по node.type (при этом фильтр уже должен существовать и иметь значение)
  30. $filter = $view->get_item($view->current_display, 'filter', 'type');
  31. $filter['value']['article'] = 'article';
  32. $view->set_item($view->current_display, 'filter', 'type', $filter);
  33.  
  34. // отключаем выполнение отдельного запроса на получение общего числа строк в запросе
  35. $view->get_total_rows = FALSE;
  36.  
  37. $view->execute();
  38. debug($view->result);
  39.  
  40. // посмотреть получившийся запрос
  41. debug((string)$view->build_info['query']);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement