it-swarm-vi.com

là nút $ luôn có sẵn trong page.tpl.php

Tôi định kỳ nhận được một lỗi về nút $ không được xác định trong một trong các tệp mẫu của tôi. Tôi có một điều kiện đơn giản nếu kiểm tra loại nút được hiển thị. Tôi giả sử nút $ luôn có sẵn, hoặc tôi sai?

12
marksward

$ nút không nhất thiết phải được xác định, từ page.tpl.php Drupal 7 API :

$ node: Đối tượng nút, nếu có một nút được tải tự động được liên kết với trang và ID nút là đối số thứ hai trong đường dẫn của trang (ví dụ: nút/12345 và nút/12345/phiên bản, nhưng không nhận xét/trả lời/12345).

12
Bart

Theo mặc định, chỉ trên các trang nút là biến nút $ được xác định. Đối với trang đầu (một nguồn cấp dữ liệu), xem các trang, nhận xét, v.v., thì không.

Nếu bạn muốn một biến nút $ được xác định trên một trang mà nó không phải là nút, thì bạn sẽ phải chỉnh sửa/tạo hàm MYTHEME_pre process_page (& $ biến) trong tệp template.php của chủ đề.

Để tránh lỗi của bạn, trong tệp mẫu của bạn bọc biến $ nút trong một

if (isset($node)) {
  // do something with $node
}

Hoặc loại bỏ nó hoàn toàn

8
iStryker