Переопределите страницы таксономии с помощью панелей и предоставьте таксономический контрольный список для узлов

#drupal #drupal-6 #taxonomy #breadcrumbs #drupal-panels

#drupal #drupal-6 #таксономия #панировочные сухари #drupal-panels

Вопрос:

У меня есть страница, где узлы классифицированы с использованием базовой таксономии (скажем, «вид» -> животное -> млекопитающее -> обезьяна).

  1. Я хочу переопределить страницы таксономии с помощью панелей
  2. Я также хочу убедиться, что все узлы получают хорошую разметку на основе таксономии по умолчанию

Я успешно решил # 1 и # 2 по отдельности, но не могу заставить их воспроизводиться вместе.

Для # 1 лучшим решением, которое я нашел, является активация «Шаблона термина таксономии» в / admin / build / pages). Отличное руководство можно найти по адресу http://drupaleasy.com/blogs/ultimike/2010/10/taxonomy-term-pages-steroids-using-panels-views

Для # 2 как для модуля пользовательских панировочных сухарей (с подмодулем пользовательских панировочных сухарей таксономии), так и для таксономических панировочных сухарей. К сожалению, оба метода перехватывают один и тот же хук, используемый # 1, и при этом отключают # 1.

Как я могу достичь обеих целей одновременно? Большое спасибо!

Ответ №1:

Для # 2 вы можете использовать пользовательские разметки. Я не уверен насчет версии 6.x-1.x, но я могу подтвердить, что 6.x-2.0 работает нормально. Что вам нужно сделать, так это:

  • включите оба подмодуля с пользовательскими панировочными сухарями для таксономии и с пользовательскими панировочными сухарями для панелей
  • настройте все на странице Пользовательской конфигурации панировочных сухарей
  • сделайте вес пользовательских разметок для панелей максимально высоким в нижней части страницы конфигурации (чтобы переопределить пользовательские разметки для таксономии, которые сами по себе не уживаются с панелями)

Однако пользовательский макет создается после панелей, поэтому вы не можете фактически использовать его на панели. Но вы можете распечатать его в page.tpl.php за пределами панели.

Редактировать:

Похоже, Пользовательские Панировочные сухари для панелей не имели к этому никакого отношения 🙂

Он только что отобразил очень вводящий в заблуждение текст на странице конфигурации («Используйте таксономические панировочные сухари для панелей»). После еще некоторых исследований оказалось, что это работает, когда panels вес тогда был меньше custom_breadcrumbs_taxonomy (см. таблицу system в базе данных).

Если вы действительно хотите отображать панировочные сухари на панелях, вы можете сделать это с помощью этого (взломанного) метода:

  • настройте таксономические панировочные сухари
  • убедитесь, что в системной таблице указаны правильные веса, как описано
  • добавьте шаблон в панель вашей страницы
  • добавьте функцию предварительной обработки, которая заменяет панировочные сухари в панелях на конечные панировочные сухари, созданные с помощью custom_breadcrumbs_taxonomy, например:

(примечание: моя панель имеет тип page, она находится в content разделе)

 function abn_preprocess_page(amp;$vars) {
  $old_breadcrumb = strstr( strstr($vars['content'],'<div class="breadcrumb">'), '</div>', true);
  if ($old_breadcrumb) {
    $old_breadcrumb .= '</div>';
    $vars['content'] = str_replace($old_breadcrumb, $vars['breadcrumb'], $vars['content']);
  }  
}
  

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

1. Звучит очень интересно и разумное решение. 1, пока у меня не появится шанс попробовать это. Большое спасибо!