xandeadx.ru Блог музицирующего веб-девелопера

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'];
        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
Похожие записи

Комментарии RSS

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

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

бритва оккама

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

Религия :)

Оставить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. Если у вас есть аккаунт в Gravatar, привязанный к этому e-mail адресу, то он будет использован для отображения аватара.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <i> <b> <strong> <code> <ul> <ol> <li> <blockquote> <em> <s>
  • Строки и параграфы переносятся автоматически.
  • Подсветка кода осуществляется с помощью тегов: <code>, <css>, <html>, <ini>, <javascript>, <sql>, <php>. Поддерживаемые стили выделения кода: <foo>, [foo].

Подробнее о форматировании