Drupal: назначить блок для определенного типа контента - PullRequest
2 голосов
/ 20 апреля 2010

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

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

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

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

Ответы [ 3 ]

7 голосов
/ 13 июня 2010

В 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
   }
?>

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

3 голосов
/ 16 сентября 2010

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

1 голос
/ 21 апреля 2010

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

...