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