it-swarm.asia

متغير للتحقق مما إذا كانت الصفحة من نوع محتوى آخر

المتغيرات $page و $teaser مفيدة جدًا ، ولكن هل هناك طريقة للتحقق مما إذا كنت في نوع مختلف من نوع المحتوى؟ على سبيل المثال ، إذا قمت بإنشاء نوع محتوى يسمى Products ، فما الذي يمكنني كتابته في ملف القالب الخاص بي page.tpl.php الذي سيعرض HTML فقط إذا كانت الصفحة التي يتم عرضها من النوع المنتجات؟

6
enchance

ضع هذا في template.php الخاص بموضوعك ، مع استبدال "THEMENAME" باسم مظهرك:

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
marcvangend