it-swarm-eu.dev

Proměnná pro kontrolu, zda je stránka nějakého jiného typu obsahu

Proměnné $page a $teaser jsou velmi užitečné, ale existuje způsob, jak zkontrolovat, zda jsem v jiném typu typu obsahu? Pokud jsem například vytvořil typ obsahu s názvem Products, co mohu napsat do mého souboru šablony page.tpl.php které zobrazí HTML, pouze pokud je prohlížená stránka typu Produkty?

6
enchance

Vložte toto do template.php motivu a nahraďte „THEMENAME“ názvem vašeho motivu:

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

A použijte to ve své stránce.tpl.php:

<?php print $some_html; ?>

Pokud chcete zachovat řetězec HTML v souboru šablony, udělal bych to v 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;
  }
}

A použijte to na stránce page.tpl.php:

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

Po vytvoření funkce THEMENAME_preprocess_page nezapomeňte vymazat mezipaměť, jinak Drupal nebude vědět, že je tam a nebude se spouštět).

12
marcvangend