Дано — страница термина, созданная с помощью 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']
Возможно способ подойдёт и для обычной страницы таксономии. Не проверял.
Написанное актуально для
Taxonomy Display 7.x-1.1
Комментарии
Альтернативный вариант - панели:)
А что мешает во вьюшке для содержимого термина в подвале вывести еще и другую вьюшку с полями термина?
бритва оккама
Добавить комментарий