2013-05-29 7 views
5

मैं टेम्पलेट ओवरराइट को समझता हूं और प्यार करता हूं। मुझे मेनू आउटपुट में कुछ भारी परिवर्तन करने की ज़रूरत है (मूल रूप से आउटपुट को बूटस्ट्रैप के साथ बेहतर काम करना) - लेकिन केवल कुछ मेनू के लिए।लिंक आउटपुट के लिए वैकल्पिक लेआउट के साथ mod_menu के लिए टेम्पलेट ओवरराइट कैसे करें?

वर्तमान जूमला 3 में वहाँ mod_menu/tmpl फ़ोल्डर में निम्नलिखित हैं:

default.php 
default_component.php 
default_heading.php 
default_separator.php 
default_url.php 

मैं अपने mytemplate/html/mod_menu में कक्षाएं मैं default.php कॉपी चाहते हैं बदल सकते हैं और यह बदलना चाहते हैं। बढ़िया, कोई समस्या नहीं है।

यदि मैं लिंक आउटपुट को इसके साथ जाने के लिए बदलना चाहता हूं तो मैं default_component.php को mytemplate/html/mod_menu पर कॉपी कर सकता हूं और इसे बदल सकता हूं। बढ़िया, कोई समस्या नहीं है।

यदि मैं एक अलग "वैकल्पिक लेआउट" रखने का विकल्प चाहता हूं तो मैं mytemplate/html/mod_menu/default.php से newlayout.php का नाम बदलूंगा, फिर उस मेनू के लिए व्यवस्थापक मॉड्यूल प्रबंधक में इसका चयन करें। बढ़िया, कोई समस्या नहीं है।

यहाँ समस्या है: मैं समझ अगर मैं लिंक आउटपुट कुछ मेनू के लिए बदल गया लेकिन उन सभी को नहीं करना चाहते है कि मैं जो ऊपर newlayout.php के अनुरूप होगा किया था मैं newlayout_component.php को default_component.php बदल देंगे ... लेकिन यह है कि नहीं करता है काम नहीं करता

सवाल:

1) कैसे default_component.php, default_heading.php, default_separator.php, default_url.php टेम्पलेट फ़ाइलें (न सिर्फ एक अधिलेखित) से प्रत्येक के लिए वैकल्पिक लेआउट के लिए?

2) मुझे लगता है कि default_url.php वह है जो लिंक आउटपुट को प्रभावित करेगा लेकिन ऐसा लगता है कि यह default_component.php है। तो उनमें से प्रत्येक क्या करता है? मुझे इसके बारे में joomla.org पर कोई जानकारी नहीं मिली।

धन्यवाद!

उत्तर

6
  1. विकल्प लेआउट सुविधा केवल sublayouts (default_component.php, ...) के लिए नहीं, मुख्य फ़ाइल (default.php) के लिए काम करता है। तो आपको अपना खुद का newlayout.php बनाना होगा जो newlayout_component.php लोड कर सकता है, या default_component.php का उपयोग कर सकता है। वास्तव में, default_component.php का उपयोग फ़ॉलबैक के रूप में किया जाएगा यदि कोई newlayout_component.php नहीं मिला है।
  2. कोड लिंक के $item->type पर स्विच करता है। 'separator', 'url', 'component' और 'heading''default_'.$item->type द्वारा प्रबंधित किए जाते हैं, अन्य सभी default_url का उपयोग करेंगे। तो एक सादा यूआरएल वास्तव में default_url.php द्वारा उत्पन्न किया जाना चाहिए, default_component.php नहीं। यदि यह अलग-अलग व्यवहार करता है, तो यह एक बग की संभावना है।
+0

वाह .... कभी-कभी जवाब केवल इतना आसान होता है। लानत कॉल बदलें। आह। – Gisto

+0

और पूरी तरह से जोड़ने के लिए भूल गए - आप रॉक, धन्यवाद !! – Gisto

संबंधित मुद्दे