Drupal - пользовательский регион в пользовательском типе контента - PullRequest
1 голос
/ 17 августа 2010

У меня большие проблемы с отображением блоков только на странице с пользовательским содержимым.

Так вот в чем проблема;У меня есть блок X, который я хочу отобразить на узле с пользовательским типом контента Y. Я не хочу, чтобы этот блок отображался на каждой странице, только те, которые имеют данный тип контента.

ЕслиЯ определяю настраиваемую область Z в своем шаблоне страницы настраиваемого содержимого (например, Y.tpl.php). Я не могу напечатать содержимое области там ($ Z), так как переменная кажется пустой.Если я определю ту же самую область на page.tpl.php, я смогу напечатать содержимое области без проблем.

Так что я думаю, что проблема в том, что переменная региона ($ Z) не передается на страницу пользовательского содержимого,Есть ли способ, которым я могу добиться этого поведения?

Ответы [ 2 ]

0 голосов
/ 18 августа 2010

Вы можете сделать это с помощью Context -> http://drupal.org/project/context

Поскольку у страницы, на которой вы хотите блок, есть путь, узел /% nid или чистый URL-адрес, вы можете настроить контекст так, чтобы показывать конкретный блок в области, которую вы хотите только для этого пути.

0 голосов
/ 17 августа 2010

Использование специального региона, отображаемого на странице вашего типа контента, не является чистым решением для отображения блока только для узлов определенного типа контента.Блок по-прежнему будет отображаться в памяти Drupal для каждой страницы.Вместо этого вы можете захотеть контролировать видимость блока с помощью некоторого PHP-кода, используя menu_get_object() , чтобы получить текущий узел и его тип.любые страницы /node/$uid и /node/$uid/*.Чтобы не отображать блок на /node/$uid/* страницах, должно работать следующее

$node = menu_get_object();
return $node && $node->type == 'custom-content-type' && !arg(2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...