Drupal → Taxonomy Display и поля после Views
Дано — страница термина, созданная с помощью Taxonomy Display, и Views выводящий контент термина.
Задача — вывести поле термина после Views (по умолчанию можно выводить только перед).
Решение на примере словаря categories
и поля description
:
/** * Implements hook_page_alter(). */ function THEMENAME_page_alter(&$page) { $menu_item = menu_get_item(); if ($menu_item['path'] == 'taxonomy/term/%') { $term = $menu_item['page_arguments'][0]; if ($term->vocabulary_machine_name == 'categories') { $main = &$page['content']['system_main']; if (!empty($main['term_heading']['term']['description'])) { $main['description'] = $main['term_heading']['term']['description']; $main['description']['#weight'] = 100; unset($main['term_heading']['term']['description']); } } } }
Идея в том, чтобы в рендер-массиве страницы вынести нужное поле на два уровня выше. Т.е. из
$page['content']['system_main'] - ['term_heading'] -- ['term'] --- ['description'] --- ['field_...'] - ['views']
сделать
$page['content']['system_main'] - ['term_heading'] -- ['term'] --- ['field_...'] - ['views'] - ['description']
Возможно способ подойдёт и для обычной страницы таксономии. Не проверял.
Комментарии
Альтернативный вариант - панели:)
А что мешает во вьюшке для содержимого термина в подвале вывести еще и другую вьюшку с полями термина?
бритва оккама
Оставить комментарий