सभी विषयों पर एक मॉड्यूल लेआउट कैसे दिखाया जाए


13

यह स्थिति है: मेरे पास कई स्व-निर्मित मॉड्यूल हैं, सभी डिफ़ॉल्ट थीम का उपयोग करके परीक्षण किए गए और काम कर रहे हैं। फिर हमने एक नया थीम खरीदा और स्थापित किया। नए विषय पर स्विच किया गया और मॉड्यूल नहीं दिखाए गए हैं। कई कोशिशों / असफल परीक्षणों के बाद मैंने पाया कि मुझे हाल ही में स्थापित थीम के संगत फ़ोल्डरों को संबंधित लेआउट और टेम्पलेट फ़ाइलों को कॉपी करने की आवश्यकता है।

तो, मेरा सवाल यह है: मॉड्यूल सेटअप के बाद स्थापित किसी भी विषय के साथ काम करने के लिए मुझे क्या करना चाहिए?


1
यदि आप डिजाइन / दृश्यपटल / आधार / डिफ़ॉल्ट में अपने लेआउट फ़ाइलें डाल / ... वे दिखाया जाएगा जो कुछ भी विषय है
Sander Mangel

जवाबों:


17

base/defaultरास्तों में सब कुछ डाल दिया ।

उदाहरण:

app/design/frontend/base/default

skin/frontend/base/default


आउच! इसके बारे में सोचा नहीं था, आप सही हैं, कार्यालय पहुंचते ही परीक्षण करेंगे।
यारोस्लाव

+1 - "समुदाय" के रूप में लेबल किए गए बहुत सारे मॉड्यूल हैं जो इस अभ्यास का पालन नहीं करते हैं और उन्हें करना चाहिए।
pspahn

बेस टेम्पलेट को Magento 1.4 में पेश किया गया था। इस समस्या को हल करने के लिए। यदि आप डिफ़ॉल्ट पैकेज का उपयोग नहीं कर रहे थे, तो टेम्पलेट फ़ाइलों की प्रतिलिपि बनाने वाले पुराने संस्करणों में, यह करने का तरीका था।
फोमन में क्रिस्टोफ

5

सच सच है, आप वास्तव में गारंटी नहीं दे सकते कि वे होंगे। अपनी फ़ाइलों को अंदर लाना base/default(या default/defaultयदि वे कोर टेम्प्लेट को ओवरराइड करते हैं - जैसा कि आप मॉड्यूल इंस्टाल के साथ बेस फ़ाइलों को अधिलेखित नहीं करना चाहते हैं, हालांकि यह आपको एंटरप्राइज़ संस्करण के लिए डुप्लिकेट रखने के लिए मजबूर करता है) गारंटी देगा कि वे फालबैक बन जाएंगे, लेकिन थीम फ़ाइलें हमेशा सर्वोच्च स्तर की प्राथमिकता हो।

अधिकांश मॉड्यूल एक इंस्टॉल गाइड के साथ आते हैं, जिसमें उपयोगकर्ता के विषय में टेम्पलेट फ़ाइलों को कॉपी करने का उल्लेख शामिल है यदि उनके पास एक कस्टम है। यह सबसे अच्छा आप कर सकते हैं के बारे में है।


4

एक चीज जो हमने कई बार इस्तेमाल की है वह है [फेब्रीज़ियो ब्रैंका] [1] का [कस्टम फॉलबैक] [2] मॉडेल्यू। यह अपनी खुद की कस्टम थीम की कमबैक पदानुक्रम को निर्दिष्ट करने के लिए एक बहुत ही उपयोगी मॉड्यूल है। एक चीज़ जो आप कर सकते हैं वह है:

  1. custom/theme

  2. base/default

  3. default/default

फिर कोई भी मॉड्यूल जो default/defaultथीम में अपने स्वयं के टेम्पलेट डालते हैं । यदि वे base/defaultपैकेजों को ओवरराइड करने की कोशिश कर रहे हैं तो वे काम नहीं करेंगे ।

आप कस्टम फ़ॉलबैक पदानुक्रम में किसी भी पैकेज / थीम को निर्दिष्ट कर सकते हैं।

[१]: http://www.fabrizio-branca.de/ [२]: http://www.fabrizio-branca.de/custom-design-fallbacks-in-magento.html


2

किसी भी टेम्पलेट और लेआउट फ़ाइल को base/defaultतब तक लोड किया जाएगा जब तक कि वह रास्ते में कहीं भी ओवरराइड न हो। हालाँकि, यदि आपका कस्टम मॉड्यूल किसी प्रकार का एक विजेट है, तो आपको यह सुनिश्चित करना चाहिए कि यह कभी भी आवश्यक है। यदि उदाहरण के लिए आप परिवर्तन कर रहे हैं, जो उत्पाद पृष्ठ पर दिखाए गए हैं getChildHtml, तो उन कॉलों को संबंधित विषय में भी होना चाहिए। यदि फिर भी आपके मॉड्यूल टेम्प्लेट स्वयं द्वारा पृष्ठ हैं और वे लोड नहीं हैं base/default, तो कुछ लेआउट कॉन्फ़िगरेशन ब्लॉक करता है और आपको यह पता लगाना चाहिए कि क्या है।


के बारे में बहुत ही दिलचस्प टिप्पणी getChild, मेरे पास वास्तव में इस तरह के कुछ कॉल हैं।
यारोस्लाव

1

इसका सरल उत्तर नहीं है। यह उन मॉड्यूल पर निर्भर करता है जो आपके पास हैं। उदाहरण के लिए, कुछ मॉड्यूल कंपनियां, मुख्य फाइलों को ओवरराइड कर रही हैं। इसलिए, आपको पहले की जाँच करनी चाहिए क्या में उपलब्ध फ़ाइलों app/etc/modulesऔर app/code/local/Mage, app/code/community/Mageफ़ोल्डर्स। जैसा कि आप जानते हैं, पहला फ़ोल्डर एक मॉड्यूल इनिशियलाइज़ेशन फ़ोल्डर है जिसे आप xml फ़ाइलों से संबंधित मॉड्यूल को अक्षम या सक्षम कर सकते हैं। अंतिम दो फ़ोल्डर्स (यदि यह उपलब्ध है) कोर कोड ओवरराइडिंग फ़ोल्डर हैं।

फिर, उपलब्ध etc/modulesनिर्देशिका में से एक xml फ़ाइल खोलें । आपको नीचे कुछ दिखाई देगा:

<?xml version="1.0"?>
<config>
<modules>
    <Company_Namespace>
        <active>true</active>
        <codePool>local</codePool>
    </Company_Namespace>
</modules>

यहाँ महत्वपूर्ण भागों रहे हैं Companyऔर Namespace। जब आप app/code/localया app/code/communityफ़ोल्डरों पर जाते हैं, तो आपको एक फ़ोल्डर दिखाई देगा जिसका नाम Companyऔर उसके बाद एक सब फोल्डर होगा Namespace

जब आप Namespaceदेखते हैं तो आपको एक उप-फ़ोल्डर दिखाई देगा जिसका नाम है /etc। यह फ़ोल्डर मॉड्यूल संबंधित कॉन्फ़िगरेशन फ़ाइल को रखता है config.xml। इस फ़ाइल में मॉड्यूल से संबंधित कॉन्फ़िगरेशन लाइनें हैं जो आप यह बता सकते हैं कि इस मॉड्यूल से संबंधित फाइलें क्या हैं।

जैसा कि मैंने अपनी पहली पंक्ति में कहा, इसे प्रबंधित करना कठिन है।


मुझे लगता है कि आप प्रश्न के बिंदु से चूक गए। वह लेआउट अपडेट के बारे में पूछ रहा था। सबसे अच्छा अभ्यास एक आधार / डिफ़ॉल्ट / yourmodule पथ का उपयोग करना है।
मार्क शस्ट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.