web-gelistirme-sc.com

Sayfanın başka bir İçerik Türü olup olmadığını kontrol etmek için değişken

$page Ve $teaser Değişkenleri çok faydalıdır, ancak farklı türde bir İçerik Türünde olup olmadığımı kontrol etmenin bir yolu var mı? Örneğin, Ürünler adında bir içerik türü oluşturduysam, şablon dosyama page.tpl.php Yazdığım HTML'yi yalnızca görüntülenen sayfa tür ise Ürünler?

6
enchance

Bunu, temanızın adıyla 'THEMENAME' yerine temanızın template.php dosyasına yerleştirin:

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

Ve bunu page.tpl.php dosyasında kullanın:

<?php print $some_html; ?>

Alternatif olarak, HTML dizesini şablon dosyanızda tutmak istiyorsanız, bunu template.php'de yaparım:

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

Ve bunu page.tpl.php dosyasında kullanın:

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

THEMENAME_preprocess_page işlevini oluşturduktan sonra önbelleği temizlediğinizden emin olun, aksi takdirde Drupal orada olduğunu bilmez ve çalışmaz.

12
marcvangend