เป็น $ node เสมอใน page.tpl.php


12

ฉันได้รับข้อผิดพลาดเกี่ยวกับ $ node เป็นระยะ ๆ โดยที่ไม่ได้กำหนดไว้ในไฟล์เทมเพลตของฉันฉันมีเงื่อนไขง่ายๆที่ตรวจสอบว่ามีการแสดงประเภทโหนดหรือไม่ ฉันคิดว่า $ node ใช้ได้เสมอหรือฉันผิด


อาจต้องการธงนี้เป็นตอบเพื่อให้ผู้อื่นสามารถใช้คำถามนี้ :)
บาร์ต

คำตอบ:


12

$ node ไม่จำเป็นต้องกำหนดจากpage.tpl.php Drupal 7 API :

$ node: วัตถุโหนดหากมีโหนดที่โหลดโดยอัตโนมัติที่เกี่ยวข้องกับหน้าและ ID โหนดเป็นอาร์กิวเมนต์ที่สองในเส้นทางของหน้า (เช่นโหนด / 12345 และโหนด / 12345 / แก้ไข แต่ไม่แสดงความคิดเห็น / ตอบ / / 12345)


8

โดยค่าเริ่มต้นเฉพาะในโหนดหน้าเท่านั้นที่กำหนดตัวแปร $ node สำหรับหน้าแรก (ฟีด) ให้ดูหน้าความคิดเห็นและอื่น ๆ พวกเขาไม่ได้

หากคุณต้องการกำหนดตัวแปร $ node บนหน้าเว็บที่ไม่ใช่โหนดคุณจะต้องแก้ไข / สร้างฟังก์ชัน MYTHEME_preprocess_page (& $ ตัวแปร) ในไฟล์เทมเพลตธีมของคุณ

เพื่อหลีกเลี่ยงข้อผิดพลาดในไฟล์เทมเพลตของคุณจะห่อตัวแปร $ node ไว้ใน

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

หรือลบออกอย่างสมบูรณ์


$ node สามารถเป็นตัวแปรที่กำหนดไว้ใน page.tpl.php
Bart

1
โดยค่าเริ่มต้นใช่ถ้ามันเป็น NODE หากไม่เป็นเช่นนั้นจะไม่ได้กำหนดไว้ รับข้อเท็จจริงของคุณตรงและไม่ต้อง downvoting คำตอบที่ถูกต้อง
iStryker

คำชี้แจง "เฉพาะหน้าโหนดเท่านั้นคือตัวแปร $ node" ไม่ถูกต้อง
บาร์ต
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.