it-swarm-vi.com

Biến để kiểm tra xem trang có thuộc loại Nội dung nào khác không

Các biến $page$teaser rất hữu ích nhưng có cách nào để kiểm tra xem tôi có thuộc loại Nội dung khác không? Ví dụ: nếu tôi tạo một loại nội dung có tên Sản phẩm, tôi có thể nhập gì vào tệp mẫu của mình page.tpl.php sẽ chỉ hiển thị HTML nếu trang đang xem thuộc loại Sản phẩm?

6
enchance

Đặt cái này trong template.php của chủ đề, thay thế 'THEMENAME' bằng tên của chủ đề của bạn:

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

Và sử dụng điều này trong page.tpl.php của bạn:

<?php print $some_html; ?>

Ngoài ra, nếu bạn muốn giữ chuỗi HTML trong tệp mẫu của mình, tôi sẽ thực hiện việc này trong 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;
  }
}

Và sử dụng điều này trong page.tpl.php:

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

Đảm bảo xóa bộ đệm sau khi tạo hàm THEMENAME_pre process_page, nếu không Drupal sẽ không biết nó ở đó và nó sẽ không chạy.

12
marcvangend