#drupal #drupal-6 #taxonomy #breadcrumbs #drupal-panels
#drupal #drupal-6 #таксономия #панировочные сухари #drupal-panels
Вопрос:
У меня есть страница, где узлы классифицированы с использованием базовой таксономии (скажем, «вид» -> животное -> млекопитающее -> обезьяна).
- Я хочу переопределить страницы таксономии с помощью панелей
- Я также хочу убедиться, что все узлы получают хорошую разметку на основе таксономии по умолчанию
Я успешно решил # 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, пока у меня не появится шанс попробовать это. Большое спасибо!