Программная работа с представлениями в 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
Комментарии:
Нету комментариев для вывода...