Переопределите страницы таксономии с панелями и предоставьте основанную на таксономии цепочку хлебных крошек для узлов - PullRequest
0 голосов
/ 01 мая 2011

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

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

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

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

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

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

1 Ответ

1 голос
/ 11 августа 2011

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

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

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

РЕДАКТИРОВАТЬ:

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

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

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

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

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

function abn_preprocess_page(&$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']);
  }  
}
...