Программная работа с представлениями в Views 3

Простейший пример получения результатов дефолтного дисплея представления foo:

$view = views_get_view('foo');
$view->execute();
debug($view->result);

Более сложный пример:

$view = views_get_view('foo');
 
// устанавливаем активный дисплей
$view->set_display('page');
 
// устанавливаем значения аргументов (контекстных фильтров)
$view->set_arguments(array(123, 456));
 
// устанавливаем значения раскрытых фильтров (field_category_tid это имя параметра, передающегося в $_GET)
$view->set_exposed_input(array('field_category_tid' => 123));
 
// изменяем количество записей на страницу
$view->set_items_per_page(10);
 
// устанавливаем страницу (страницы считаются с нуля)
$view->set_current_page(2);
 
// добавляем сортировку по node.created (возможно только для таблиц участвующих в выборке)
$view->add_item($view->current_display, 'sort', 'node', 'created', array('order' => 'DESC'));
 
// добавляем фильтр по node.created (возможно только для таблиц участвующих в выборке)
$view->add_item($view->current_display, 'filter', 'node', 'created', array(
  'operator' => '>',
  'value' => array(
    'value' => '-7 day',
  ),
));
 
// изменяем значение фильтра по node.type (при этом фильтр уже должен существовать и иметь значение)
$filter = $view->get_item($view->current_display, 'filter', 'type');
$filter['value']['article'] = 'article';
$view->set_item($view->current_display, 'filter', 'type', $filter);
 
// отключаем выполнение отдельного запроса на получение общего числа строк в запросе
$view->get_total_rows = FALSE;
 
$view->execute();
debug($view->result);
 
// посмотреть получившийся запрос
debug((string)$view->build_info['query']);

Написанное актуально для
Views 3
Теги:
views api
Добавлено: 30 Июля 2018 08:12:18 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...