В Drupal 7 поле «Global: Result summary» в заголовке Views дает вам несколько токенов для доступа к некоторой информации о представлении (например, у него есть токен с именем @name -- удобочитаемое имя представления
для печати имени представления).
Однако для получения отображаемого имени представления вам необходимо создать собственный обработчик представлений для определения ваших собственных токенов:
- Создайте новый модуль. В вашей
my_module_name.info
файл, добавьте строки:
зависимости[] = просмотры
файлы [] = обработчики/views_handler_my_custom_handler.inc
- В вашей
мой_модуль.модуль
файл, добавьте hook_views_data():
функция my_module_views_data() {
// Определение вашего пользовательского обработчика
$data['views']['my_module_custom_handler'] = массив(
'title' => t('Мой пользовательский обработчик'),
'help' => t('Пользовательские токены для доступа к просмотру информации'),
'площадь' => массив(
'обработчик' => 'views_handler_my_custom_handler',
),
);
вернуть $данные;
}
- Наконец, создайте
обработчики/views_handler_my_custom_handler.inc
файл. Самый простой контент, основанный на ваших потребностях, будет выглядеть примерно так:
/**
* @файл
* Определение views_handler_area.
*/
/**
* Обработчик области просмотра для отображения некоторой настраиваемой сводки результатов.
*
* @ingroup views_area_handlers
*/
класс views_handler_my_custom_handler расширяет views_handler_area {
функция option_definition() {
$options = parent::option_definition();
$options['content'] = массив(
'default' => 'Отображение токенов просмотра',
'переводимый' => ИСТИНА,
);
вернуть $options;
}
функция options_form(&$form, &$form_state) {
родитель::options_form($form, $form_state);
$ переменные = массив (
'элементы' => массив (
'@display_name -- имя дисплея просмотра'
),
);
$list = тема('item_list', $переменные);
$ форма ['контент'] = массив (
'#title' => t('Экран'),
'#тип' => 'текстовое поле',
'#строки' => 3,
'#default_value' => $this->options['content'],
'#description' => t('Вы можете использовать HTML-код в этом поле. Поддерживаются следующие токены:') . $ список,
);
}
/**
* Узнайте информацию для рендеринга.
*/
функция рендеринга ($ пусто = ЛОЖЬ) {
$format = $this->options['content'];
// Заменить "@display_name" текущим отображаемым значением просмотра
$output = filter_xss_admin(str_replace("@display_name", $this->view->current_display, $format));
вернуть $ вывод;
}
Вот и все. Ваш пользовательский обработчик представлений теперь должен быть доступен в любом представлении.
Я рекомендую вам взглянуть на файл view_handler_area_result.inc (код для поля «Global: Result summary») в модуле Views, если вы хотите расширить его, чтобы его токены были доступны в вашем пользовательском обработчике.