Drupal → Taxonomy Display и поля после Views

08.03.2014

Дано — страница термина, созданная с помощью 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
Похожие записи

Комментарии

Альтернативный вариант - панели:)

Гость
09.03.2014, 23:32

А что мешает во вьюшке для содержимого термина в подвале вывести еще и другую вьюшку с полями термина?

Добавить комментарий