Переменная, чтобы проверить, относится ли страница к какому-либо другому типу контента


Переменные $page и $teaser очень полезны, но есть ли способ проверить, не нахожусь ли я в другом типе контента? Например, если я создал тип контента с именем Продукты , что я могу ввести в свой файл шаблона page.tpl.php, который будет отображать HTML, только если просматриваемая страница имеет тип Продукты?

 6
Author: kiamlaluno, 2011-06-08

1 answers

Поместите это в свою тему template.php, заменив "ИМЯ темы" на название вашей темы:

function THEMENAME_preprocess_page(&$variables, $hook) {
  $variables['some_html'] = '';
  if (isset($variables['node']) && $variables['node']->type == 'product') {
    $variables['some_html'] = '<p>Hello world!</p>';
  }
}

И используйте это в своем page.tpl.php :

<?php print $some_html; ?>

В качестве альтернативы, если вы хотите сохранить строку HTML в файле шаблона, я бы сделал это в template.php :

function THEMENAME_preprocess_page(&$variables, $hook) {
  $variables['print_extra_header'] = false;
  if (isset($variables['node']) && $variables['node']->type == 'product') {
    $variables['print_extra_header'] = true;
  }
}

И используйте это в page.tpl.php :

<?php if ($print_extra_header) : ?> <h1>THIS GETS PRINTED</h1> <?php endif; ?>

Обязательно очистите кэш после создания функции THEMENAME_preprocess_page, иначе Drupal не будет знать, что она есть, и не будет бежать.

 12
Author: marcvangend, 2011-06-09 06:47:06