$ नोड हमेशा page.tpl.php में उपलब्ध है


12

मैं समय-समय पर अपनी एक टेम्पलेट फ़ाइल में $ नोड के अपरिभाषित होने के बारे में एक त्रुटि प्राप्त कर रहा हूं। मेरे पास एक सरल अगर स्थिति है जो प्रदर्शित नोड प्रकार की जांच करता है। मुझे लगता है कि $ नोड हमेशा उपलब्ध है, या क्या मैं गलत हूं?


हो सकता है कि आप इसका उत्तर देना चाहते हों, इसलिए अन्य लोग इस प्रश्न का उपयोग कर सकते हैं :)
बार्ट

जवाबों:


12

$ नोड को आवश्यक रूप से परिभाषित नहीं किया गया है, page.tpl.php Drupal 7 API से :

$ नोड: नोड ऑब्जेक्ट, यदि पेज के साथ स्वचालित रूप से लोड नोड जुड़ा हुआ है, और नोड आईडी पेज के पथ में दूसरा तर्क है (जैसे नोड / 12345 और नोड / 12345 / संशोधन, लेकिन टिप्पणी / उत्तर / नहीं / 12345)।


8

डिफ़ॉल्ट रूप से, केवल नोड पृष्ठों पर $ नोड परिभाषित किया गया है। मुख पृष्ठ (एक फ़ीड) के लिए, पृष्ठ देखें, टिप्पणी करें, आदि, वे नहीं हैं।

यदि आप किसी पृष्ठ पर परिभाषित $ नोड चर चाहते हैं कि यह एक नोड नहीं है, तो आपको अपनी थीम template.php फ़ाइल में MYTHEME_preprocess_page (और $ चर) फ़ंक्शन को संपादित / बनाना होगा।

अपनी त्रुटि से बचने के लिए, अपनी टेम्पलेट फ़ाइल में $ नोड चर को एक में लपेटें

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

या इसे पूरी तरह से हटा दें


$ नोड पेज पर एक परिभाषित चर हो सकता है। tpl.php
बार्ट

1
डिफ़ॉल्ट रूप से, हाँ, यदि इसका कोई NODE है। यदि यह नहीं है, तो यह परिभाषित नहीं है। अपने तथ्यों को सीधे प्राप्त करें, और एक वैध उत्तर को अस्वीकार न करें।
स्ट्राइकर

कथन "केवल नोड पृष्ठों पर $ नोड चर परिभाषित है।" मान्य नहीं है।
बार्ट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.