एक / आधार / डिफ़ॉल्ट / लेआउट और एक / डिफ़ॉल्ट / डिफ़ॉल्ट लेआउट क्यों है?


10

एक / आधार / डिफ़ॉल्ट / लेआउट और एक / डिफ़ॉल्ट / डिफ़ॉल्ट लेआउट क्यों है? यह भ्रामक और बेमानी लगता है।

जवाबों:


7

संक्षेप default/defaultमें <1.4CE से विरासत है जहां यह मूल आधार पैकेज था। Magento कोर विषयों डिफ़ॉल्ट पैकेज अभी भी में जहाज - तो यह जरूरी नहीं है पदावनत इतना के रूप में यह विरासत है।

क्योंकि CE के उन्नयन के दौरान डिफ़ॉल्ट / डिफ़ॉल्ट को अधिलेखित किया जा सकता है, यह उचित नहीं है कि आप फ़ाइलों को यहां रखें - लेकिन प्लगइन्स <1.3 के साथ पीछे संगत होने का प्रयास जानबूझकर फ़ाइलों को आधार / डिफ़ॉल्ट के बजाय यहां कर सकते हैं।


स्रोत: http://www.magentocommerce.com/knowledge-base/entry/magentos-theme-hierarchy#3.2


तो मैं पूरी तरह से / डिज़ाइन / फ्रंटेंड / डिफ़ॉल्ट निर्देशिका को मिटा सकता हूं और सब कुछ अभी भी पूरी तरह से काम करेगा? मेरा मतलब है कि मेरे पास सिर्फ / आधार / डिफ़ॉल्ट होगा। यह ठीक है? इसके अलावा क्यों नहीं / आधार / डिफ़ॉल्ट अंदर / डिजाइन / adminhtml या / डिजाइन / स्थापित है?
कॉममाटॉस्ट

यह निश्चित रूप से संभव है। ईई जहाज डिफ़ॉल्ट / डिफ़ॉल्ट थीम के बिना।
२०:२० बजे

1
डिफ़ॉल्ट / * का उपयोग तब तक नहीं किया जाता है जब तक आप निर्दिष्ट नहीं करते कि उनका पैकेज उपयोग किया जाने वाला पैकेज है। आप सुरक्षित रूप से निर्देशिका को हटा सकते हैं यदि आप चाहें, लेकिन सलाह दी जाती है कि इसे अपग्रेड / इंस्टॉल के दौरान बहाल किया जा सकता है।
philwinkle

1
आप टेम्पलेट संकेत को सक्षम कर सकते हैं और देख सकते हैं कि क्या कोई भी ब्लॉक / डिफ़ॉल्ट / डिफ़ॉल्ट का उपयोग करता है यदि अभी भी संदेह है।
एमस्टी

1
मैं कम से कम कुछ समय याद कर सकता हूं जहां डिजाइन / पैकेज को स्विच करने में सक्षम होना defaultएक बहुत उपयोगी डिबगिंग उपकरण था।
pspahn

5

मुझे आधिकारिक मैगेंटो विकी पर और भी बेहतर उत्तर मिला । (यह 2012 से है, इसलिए मुझे यकीन नहीं है कि यदि कोई भी जानकारी पुरानी है - लेकिन यह मेरे द्वारा बताए गए 1.8.1 से लागू हो सकती है।) जबकि मैं अत्यधिक अनुशंसा करता हूं कि आप इसे पूरा पढ़ें (बोल्ड पर क्लिक करें लिंक), मुझे इसे नीचे संक्षेप में बताएं।

आखिर क्या है /base?

/base/defaultसीई 1.4 और ईई 1.8 में पेश किया गया था जो सभी ऐप-लॉजिक-टाइप फ्रंट-एंड कार्यक्षमता को एक सिंगल कोडबेस में समेकित करता है जिसे आपको कभी भी संपादित नहीं करना चाहिए। यह एक डिफ़ॉल्ट थीम के साथ एक डिज़ाइन पैकेज के रूप में एक ही निर्देशिका संरचना है , लेकिन यह कुछ महत्वपूर्ण CSS फाइलों को याद कर रहा है, इसलिए वे आपको इसे केवल अपने डिजाइन पैकेज और थीम के रूप में रखने की अनुशंसा नहीं करते हैं।

एक महान सादृश्य कहना है कि हो सकता है /baseकरने के लिए है /design/frontendकि क्या /coreकरना है /code। आप फ़ाइलों को अंदर संशोधित करने वाले नहीं हैं /base। इसके बजाय आप अपने स्वयं के कस्टम डिज़ाइन पैकेज में इसकी कार्यक्षमता का विस्तार करने वाले हैं , जो मैगेंटो पहले वापस अंदर जाने से पहले देखेगा /base/default- पहले यह अंदर दिखेगा /design/frontend/{custompackagename}/{customthemename}, फिर यह वापस गिर जाएगा /design/frontend/{custompackagename}/default/, और अंत में यह वापस गिर जाएगा /design/frontend/base/default

वास्तव में, यह केवल इस तरह से सोचा जाना चाहिए /base- /defaultउपनिर्देशिका केवल इसलिए है क्योंकि मैगेंटो फ़ॉलबैक सिस्टम अपनी थीम में प्रत्येक डिज़ाइन पैकेज के माध्यम से अपनी यात्रा पूरी करता है । स्पष्ट होने के लिए, एक डिज़ाइन पैकेज एक उपनिर्देशिका है , और थीम एक डिज़ाइन पैकेज के भीतर एक उपनिर्देशिका है। जब Magento एक डिज़ाइन पैकेज के माध्यम से देखता है, चाहे वह हो या , विषय हमेशा अंतिम स्थान पर होगा Magento दिखेगा।/default /design/frontend/base/{custompackagename}/default

इसलिए, चूंकि प्राथमिक उद्देश्य /baseफ़ॉलबैक सिस्टम में अंतिम बिंदु के रूप में सेवा करना है , इसलिए उस उद्देश्य के अनुसार इसके अलावा कोई अन्य विषय नहीं होगा /base/default

/defaultफिर क्यों है ?

तो फिर क्यों अभी भी एक है /design/frontend/default/default? और वहाँ क्यों नहीं है /design/adminhtml/base/default? सच कहूं तो मुझे दूसरे सवाल का जवाब नहीं पता। लेकिन मुझे पहले जवाब देने की कोशिश करने दो।

विरासत की अनुकूलता आदि को भूलकर, मुझे लगता है कि यह समझने में बहुत आसान हो सकता है कि क्या इसके /generic/defaultबजाय इसे बुलाया गया था /default/default। इसलिए इस चर्चा के प्रयोजनों के लिए मैं "सामान्य डिजाइन पैकेज" के रूप में /app/design/frontend/default/और /app/skin/frontend/default/सामूहिक रूप से संदर्भित करूंगा । मैं उन निर्देशिकाओं के अंदर सब कुछ का उल्लेख करूंगा जैसे कि उन्हें बुलाया गया था /app/design/frontend/genericऔर /app/skin/frontend/generic। चूंकि (कम से कम फ्रंटेंड के मामले में) मैगेंटो की फालबैक प्रणाली अब वापस नहीं आती है /app/design/frontend/default/, मुझे लगता है कि इसे "डिफ़ॉल्ट" कहना जारी है क्योंकि यह भ्रम है कि इस शब्द का अर्थ है कि कुछ फॉलबैक श्रृंखला का हिस्सा है , लेकिन जेनेरिक डिज़ाइन पैकेज अब नहीं है की शुरुआत के रूप में गिरावट श्रृंखला का हिस्सा है/base। इसलिए, "डिफ़ॉल्ट डिज़ाइन पैकेज" के बजाय इसे "जेनरिक डिज़ाइन पैकेज" कहना इस भ्रम को दूर करता है, यह बताकर कि हाँ, यह सिर्फ जेनेरिक थीम का सेट है, जो मैगेंटो के साथ मुफ्त में आता है, बिना यह कमबैक श्रृंखला का हिस्सा है। : डी

तो पर भार उठाते: सामान्य डिजाइन पैकेज के अंदर एक डिफ़ॉल्ट थीम और कई गैर डिफ़ॉल्ट थीम हैं: /blank, /iphone, और /modern। यदि कोई नॉन-डिफॉल्ट थीम सक्रिय है, तो उसकी फाइलें डिफॉल्ट थीम में कुछ भी ओवरराइड कर सकती हैं, लेकिन कोई भी ऐसा विषय नहीं है जो गैर-डिफॉल्ट थीम सक्रिय हो, जेनेरिक पैकेज के डिफॉल्ट थीम का कोई भी हिस्सा जो कि नॉन-डिफॉल्ट थीम द्वारा ओवरराइड नहीं किया गया है अभी भी चलाए जाते हैं, और आगे वे कुछ भी ओवरराइड करेंगे /base/default। अंत में किसी भी गैर-ओवरराइड भाग को /base/defaultचलाएं।

हालांकि, गंभीर रूप से, यदि आप एक कस्टम डिज़ाइन पैकेज का उपयोग कर रहे हैं, तो जेनेरिक डिज़ाइन पैकेज का कोई भी हिस्सा कभी नहीं चलेगा । वापस आने प्रणाली सीधे से चला जाता है {customdesignpackage}/{customthemename}के लिए {customdesignpackage}/defaultकरने के लिए base/default। (जब तक मैं इसे सही तरीके से नहीं समझ पा रहा हूं; कृपया मुझे गलत समझें तो सही करें।)

कहा जा रहा है कि, जेनेरिक डिज़ाइन पैकेज को पूरी तरह से कस्टम डिज़ाइन पैकेज के बिना पूरी तरह से हटा दिया जाना सामान्य होगा क्योंकि जेनेरिक डिज़ाइन पैकेज में कुछ त्वचा तत्व हैं जो अभी भी आवश्यक हैं।

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