Стажировка на реальных проектах:
наполнение портфолио, помощь с работой и заказами, пробные собеседования. Жми для подробностей→
160 of 182 menu
Внимание! Репетиторство по Python! Осталось последнее место! Стоимость: 20$ за занятие 1.5 часа. Жми для подробностей!

Таблица views_handler

В контексте Drupal Views, views_handler - это не таблица базы данных, а абстрактный базовый класс PHP, от которого наследуются все обработчики (handlers). Обработчики являются ключевыми строительными блоками модуля Views, отвечающими за определение полей, фильтров, сортировок, отношений и аргументов.

Назначение и роль

Класс views_handler предоставляет общую функциональность для всех типов обработчиков:

Аспект Описание
Базовая реализация Определяет основные методы и свойства, общие для всех обработчиков.
Интеграция с Views Обеспечивает стандартный интерфейс для взаимодействия с ядром Views.
Управление контекстом Предоставляет методы для работы с контекстом представления и текущим запросом.
Обработка опций Содержит логику для управления настройками обработчика через UI Views.

Основные методы класса

Класс views_handler определяет множество методов, но наиболее важными являются:

Метод Назначение
option_definition() Определяет опции по умолчанию для обработчика.
options_form() Строит форму настроек обработчика в административном интерфейсе.
options_validate() Выполняет валидацию введенных пользователем настроек.
options_submit() Обрабатывает отправку формы настроек.
admin_summary() Возвращает краткое описание настроек обработчика для сводки Views.

Типы обработчиков

От views_handler наследуются специализированные классы для различных целей:

Тип обработчика Базовый класс Назначение
Поля views_handler_field Определяют, какие данные выводятся в результате представления.
Фильтры views_handler_filter Ограничивают результаты запроса по определенным критериям.
Сортировки views_handler_sort Определяют порядок сортировки результатов.
Аргументы views_handler_argument Предоставляют контекстуальные фильтры на основе URL или других параметров.
Отношения views_handler_relationship Устанавливают связи между различными таблицами данных.

Как это работает

Когда создается или редактируется представление, система Views загружает доступные обработчики для каждого типа данных. Каждый обработчик регистрируется в системе через hook_views_handlers() и наследует от views_handler или одного из его подклассов.

При построении запроса Views использует методы обработчиков для добавления соответствующих условий, полей и сортировок в SQL-запрос. Например, обработчик фильтра добавляет условие WHERE, а обработчик сортировки - выражение ORDER BY.

Обработчики тесно связаны с данными, которые они обрабатывают. Для сущностей узлов используются обработчики, работающие с полями и свойствами узлов, для пользователей - с пользовательскими данными и т.д.

Пример создания кастомного обработчика

Для создания собственного обработчика поля необходимо:

// В модуле mymodule.views.inc function mymodule_views_handlers() { return array( 'info' => array( 'path' => drupal_get_path('module', 'mymodule') . '/includes/views/handlers', ), 'handlers' => array( 'mymodule_views_handler_field_custom' => array( 'parent' => 'views_handler_field', ), ), ); } // В файле includes/views/handlers/mymodule_views_handler_field_custom.inc class mymodule_views_handler_field_custom extends views_handler_field { function render($values) { // Кастомная логика рендеринга поля return 'Custom: ' . check_plain($values->{$this->field_alias}); } }

Смотрите также

  • таблицу views_view,
    которая хранит определения представлений
  • таблицу views_display,
    которая содержит настройки дисплеев представлений
  • таблицу views_cache,
    которая управляет кэшированием представлений
  • таблицу views_plugin,
    которая хранит информацию о плагинах Views