Показывать блок на страницах определенного типа материала

admin друпал drupal

Иногда нужно показывать блок на определенных страницах только одного контент типа. В стандартных настройках видимость блока настраивается только по определенному пути или по роли пользователей. Следующий код вписанный в настройки видимости блока, с включенным режимом php, позволяет выбрать контент тип на страницах которого будет показан код.

<?php
$match = false;
if (arg(0) == 'node' && is_numeric(arg(1))) {
  $nid = arg(1);
  $node = node_load(array('nid' => $nid)); 
  $type = $node->type; 
  if (isset($types[$type])) { 
    $match = TRUE;   
  }
} 
if (substr($_SERVER["REQUEST_URI"], 0, 6) == '/page/') {
  $match = TRUE;
} 
if (substr($_SERVER["REQUEST_URI"], 0) == "/node/add/page") { 
  $match = TRUE;
} 
return $match; 
?> 

Так например блок будет отражаться на страницах контент типа Page, а также на страницах добавление page. Где $types это массив машинных имен типов материалов, например такой:

$types = array('page' => 'page', 'news' => 'news');

 

Добавить комментарий

Войти, используя Loginza Google Account Yandex Mail.ru Vkontakte Facebook
(If you're a human, don't change the following field)
Your first name.
(If you're a human, don't change the following field)
Your first name.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.