2014-02-06 5 views
0

Мне нужна ваша помощь в решении проблемы, которая кажется ребяческой, но я не могу ее решить.Drupal: блок не отображается на странице определенного типа контента

Я хотел бы активировать блок (который уже активирован для других типов содержимого страниц и прекрасно работает), чтобы показать его на новый типа контента. Я просто проверил поле в admin-> structure-> block-> configure-> параметры видимости для этого конкретного типа контента, как и для других. Однако он не появляется.

Здесь screenshot параметров блока конфигурации (вы никогда не знаете ^^).

Этот блок находится в sidebar_second регионе. Поэтому я проверил с dpm(), если этот регион был установлен в обоих типах контента.

Here Я могу видеть, что на самом деле набор для моего типа содержимого basic page где блок показывает вверх хорошо.

Но here Я вижу, что моего региона не существует вообще и тем самым мой блок не появляется.

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

Кроме того, я пытался найти моих блоков в sidebar_first области (что уже существует для моего content-type testimonial). К сожалению, это не работает. Конечно, он хорошо работает на content-type basic page ...

Чтобы убедиться, что код страницы не переопределен в моем testimonial.module или шаблоне, я проверил дважды крючки я реализован и все мои шаблоны файлы ... Я не нашел ничего, что могло бы вызвать эту проблему.

В конце концов, я гугл моей проблемы и обнаружил, что отчет ошибки (закрыто, потому что не может быть воспроизведен): https://drupal.org/node/1777072, но я думаю, что это было бы очень повезло, как это происходит ...

Чтобы выбрать, это, безусловно, ошибка, которую я не вижу, а не редкую ошибку uber, которая произошла с 10 людьми в мире. xD

Вот почему мне нужна ваша помощь, люди на стеке!

ответ

0

Я просто хотел, чтобы вы знали, что я с этим разберусь.

Действительно, моя функция hook_node_view() реализована menu_set_active_item("testimonial"), чтобы решить навигационную деталь (чтобы выделить выделение пункта меню ...). Тем не менее, он модифицированного переменной q в URL и Drupal сделал больше, что страница была фактически узла типа характеристики с (и думала, что это было на самом деле View) не знает.

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

Итак, я должен был сохранить истинную природу моей страницы в переменной с помощью menu_get_active_trail() до реализации menu_set_active_item().

В конце концов, мне пришлось передать эту переменную в моем hook_block_view(), чтобы отобразить блок.

Я извините за то, что не предоставил вам всю информацию, необходимую для ответа на мой вопрос. Я думал, что пользовательский код не был очень подозрительным, но я ошибся. Я все еще младший разработчик Drupal, и я не знал, что именно делает menu_set_active_item() метод. Спасибо, однако, и у вас отличный выходной!

0

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

Вам нужна строка:

<?php echo render($page['sidebar_first']); ?> 

В шаблоне страницы используется отзывом.

Хм, на самом деле я не совсем уверен, что это правильное решение, но я выложу только в случае, если это помогает ...

Смежные вопросы