Drupal: назначить блок для определенного типа контента

Я создал настраиваемый шаблон с именем node-mynode.tpl.php. Когда запрашивается узел типа mynode, автоматически используется node-mynode.tpl.php.

Однако теперь пользователь хочет видеть определенный блок меню в этом случае.

Вопрос: Как я могу назначить блок для определенного типа контента?

Подсказка: я начал смотреть на псевдонимы URL с помощью Pathauto. Я подозреваю, что одно решение может лежать в этом направлении.

3 ответа

Решение

Дай все свои mynode тип узлов автоматический псевдоним, который начинается с /mynode и используйте настройки видимости страницы для блока, показывая только на страницах, которые начинаются с /mynode/*,

В Drupal 6 вы можете настроить параметры видимости блоков. Нажмите на ссылку "настроить" рядом с вашим блоком в бэкэнде администратора и выполните следующие действия:

1) Выберите параметр "Показать, если следующий код PHP возвращает значение ИСТИНА (режим PHP, только для экспертов)" на вкладке "Параметры видимости страницы".

2) Введите следующий код PHP, который проверяет тип узла текущего узла и возвращает TRUE соответственно -

<?php 
   if( arg(0) != 'node' || !is_numeric(arg(1)) )
   { return FALSE;
   }

   //load a fully-populated Drupal node object
   $temp_node = node_load(arg(1));

   if( $temp_node->type == 'mynode' )       //check the node type
   {   return TRUE;    //display block
   }
?>

Это должно работать....

Вы можете использовать контекстный модуль

Другие вопросы по тегам