↑ Views API - работа с представлениями в Drupal 6 | ||||
Урок - Хук hook_views_data() | ||||
← Предыдущий урок Урок - Хук hook_views_api()
|
Следующий урок → Урок - Готовые решения
|
Хук hook_views_data()
hook_views_data рассказывает модулю Views о таблицах, полях и взаимодействии с базовыми таблицами.
Реализация хука должна возвращать ассоциативный массив формата:
return array(
'<имя_таблицы1>' => array(
'table' => array(
'group' => '<название_группы_для_имя_таблицы1>',
'join' => array(
'<базовая таблица>' => array(
'left_field' => '<поле базовой таблицы>',
'field' => '<поле текущей таблицы>',
),
// описание побключения к остальным базовым таблицам
),
'base' => array(
'field' => '<базовое поле>',
'title' => '<название таблицы>',
'help' => '<подсказка>',
'weight' => <вес>,
),
),
'<поле1>' => array(
'title' => t('Text field'),
'group' => t('Group fot Text field'),
'help' => t('Help for text field.'),
'real field' => 'real_text_field',
'field' => array(
'handler' => 'views_handler_field',
'click sortable' => TRUE,
),
'sort' => array(
'handler' => '<views_handler_sort>',
'formula' => '...',
),
'filter' => array(
'handler' => '<views_handler_filter>',
),
'argument' => array(
'handler' => '<views_handler_argument>',
),
'relationship' => array(
'handler' => '<views_handler_relationship>',
),
),
'<поле2>' => array(
// описание поля 2
),
// описание остальных полей
),
'<имя_таблицы2>' => array(
// описание таблицы "имя_таблицы2"
),
// описание остальных таблиц
...
);
В вашей реализации многие из указанных параметров будут отсутствовать.
Разберем по порядку что есть что.
- <имя_таблицы> (в примере выше <имя_таблицы1>, <имя_таблицы2>) - это название таблицы в базе данных (без префикса Drupal) для которой будем указывать параметры.
- в зарезервированном индексе table указываем параметры касающиеся текущей таблицы.
- в ключе group - указывается название группы. Отображается при добавлении фильтров, аргументов и других параметров представления.
- в ключе join - указываются параметры присоедиения (JOIN) к базовым таблицам, таким как {users}, {node}, ...
Структура массива join следующая:
- ключом (<базовая таблица>) является одна из базовых таблиц ({node}, {users}, ...)
- в ключе left_field указывается первичный ключ базовой таблицы, для {node} это nid, для {users} будет поле {uid}.
- в ключе field указывается ключ из текущей таблицы по которому идет связь с базовой таблицей.
- в ключе base - указываются параметры, что бы сделать из текущей таблицы базовую.
- в ключе field указывается первичный ключ для базовой таблицы.
- в ключе title указывается название таблицы.
- в ключе help указывается подсказка к таблице.
- в ключе weight указывается вес для сортировки в списке базовых таблиц.
- если индекс не совпадает с 'table', то следующая структура рассматривается как описание полей таблицы (<поле1>, <поле2> ). Полем таблицы может быть как физически существующие поле в таблице, так и синонимом.
- в ключе title - указываем название поля. Отображается при редактировании представления.
- в ключе group, не обязательно - указываем название группы для текущего поля. Если параметр group отсутствует, то используется group из параметров текущей таблицы.
- в ключе help - указываем краткое пояснение для поля. Отображается при редактировании представления.
- в ключе 'real field'(не обязательный параметр) указывается настоящее имя поля, если в имя поля является синонимом(alias).
- в ключе field указываются параметры для обработки, при добавлении "поля"/"field" в представлении. Используется в части SELECT запроса.
- ключ click sortable разрешает(TRUE)/запрещает(FALSE) сортировать по данному полю.
- в ключе handler указывается название обработчика, который отвечают за обработку указанного действия.
- в ключе sort указываются параметры для обработки, при добавлении "сортировки"/"sort" в представлении. Используется в части ORDER BY запроса.
- в ключе handler указывается название обработчика, который отвечают за обработку указанного действия.
- в ключе formula - часть SQL запроса для вставки в SQL-запрос.
- в ключе filter указываются параметры для обработки, при добавлении "фильтра"/"filter" в представлении. Используется в части WHERE запроса.
- в ключе handler указывается название обработчика, который отвечают за обработку указанного действия.
- в ключе argument указываются параметры для обработки, при добавлении "аргумента"/"argument" в представлении. Используется если поле является аргументом.
- в ключе handler указывается название обработчика, который отвечают за обработку указанного действия.
- в ключе relationship указываются параметры для обработки, при добавлении "отношения"/"relationship" в представлении. Используется для присоединения других таблиц (JOIN).
- в ключе handler указывается название обработчика, который отвечают за обработку указанного действия.
- в зарезервированном индексе table указываем параметры касающиеся текущей таблицы.
↑ Views API - работа с представлениями в Drupal 6 | ||||
Урок - Хук hook_views_data() | ||||
← Предыдущий урок Урок - Хук hook_views_api()
|
Следующий урок → Урок - Готовые решения
|