मैंने वेब के चारों ओर मंडराया है और यह बिल्कुल स्पष्ट नहीं है कि कस्टम मेनू को कैसे थीम दिया जाए। मैंने घंटों तक देखा है और एक भी पोस्ट नहीं पाया है जो प्रक्रिया को दिखाता है, शुरू से अंत तक, एक मेनू बनाने और इसके आउटपुट को अनुकूलित करने के लिए। ऐसा लगता है कि यह एक बहु-चरण प्रक्रिया है:
- Drupal इंटरफ़ेस के माध्यम से मेनू बनाएँ।
template.php
आउटपुट को थीम देने के लिए अपनी फ़ाइल में थीम फ़ंक्शन बनाएं ।- एक चर के रूप में जोड़कर इस मेनू को एक टेम्पलेट फ़ाइल (किसी तरह) में बेनकाब करें।
theme
टेम्प्लेट फ़ाइल में मेनू पर फ़ंक्शन को कॉल करें ।
1 करना काफी आसान है, जो समस्याएं मैं 2, 3 के साथ चला रहा हूं, और 4. डिफ़ॉल्ट पृष्ठ टेम्पलेट को देखते हुए, मैं देखता हूं कि यह चर में मुख्य मेनू को उजागर करता है $main_menu
। बाद में पृष्ठ के नीचे आप फ़ंक्शन को देख सकते हैं theme('links__system_main_menu', array('links' => $main_menu...
, जिसका अर्थ है कि यह उचित रूप से नामित थीम फ़ंक्शन की तलाश कर रहा है और इसका उपयोग आउटपुट उत्पन्न करने के लिए कर रहा है।
मुझे पता है कि अगर मैं function theme_links__system_main_menu(&$variables) {...}
अपने टेम्पलेट में जगह करता हूं। पीएपी फ़ाइल ड्रुपल उस फ़ंक्शन का विरोध करेगी function theme_menu_links(&$variables) {...}
।
मुझे नहीं पता कि Drupal उस फ़ंक्शन के साथ मेरे द्वारा बनाए गए कस्टम मेनू को कैसे लिंक करता है। उदाहरण के लिए मान लें कि मैंने एक मेनू बनाया है जिसे कहा जाता है My Menu
। क्या मैं अपनी template.php
फ़ाइल में निम्न फ़ंक्शन बना सकता हूं और उस मेनू के आउटपुट को थीम कर सकता हूं ?function theme_links__system_my_menu(&$variables) {...}
इसके अलावा, कोई उस कस्टम मेनू को टेम्प्लेट फ़ाइल में कैसे उपलब्ध कराता है? Drupal कैसे $main_menu
वैरिएबल को page.tpl.php में एक्सपोज करता है?
मुझे लगता है कि मुझे जो कुंजी याद आ रही है, वह यह है कि कैसे चर को एम्बेड करना है जो मेरे कस्टम मेनू को टेम्पलेट पेज में प्रदर्शित करता है। अधिकांश भाग के लिए हालांकि मैं पूरी तरह से खो गया हूं कि मेनू बनाने के बाद क्या करना है।
सहायता के लिए धन्यवाद।
संपादित करें: संभवतः मैं जो कर रहा हूं उसे पोस्ट करना चाहिए। नीचे BetaRide पर मेरी टिप्पणी के अनुसार, मुझे <li>
मेनू आइटम के तत्वों में अनुकूलित HTML को इंजेक्ट करने की आवश्यकता है । विशेष रूप से, मैं ट्विटर बूटस्ट्रैप आइकन जोड़ रहा हूं।