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


12

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?


Có thể muốn gắn cờ này như đã trả lời để những người khác có thể sử dụng câu hỏi này :)
Bart

Câu trả lời:


12

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

$ 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).


8

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 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


$ nút có thể là một biến được xác định trên page.tpl.php
Bart

1
theo mặc định, có, nếu đó là NODE. Nếu nó không phải, thì nó không được xác định. Hãy nói thẳng sự thật của bạn và đừng hạ thấp câu trả lời hợp lệ.
iStryker

Câu lệnh "Chỉ trên các trang nút là biến nút $ xác định." không hợp lệ.
Bart
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.