एक पैकेज में कई local.xml लेआउट फ़ाइलें


13

कहते हैं कि पैकेज में दो थीम हैं:

  • आधार (डिफ़ॉल्ट के रूप में सेट करें)
  • बच्चा (मुख्य विषय के रूप में सेट करें)

दोनों में लेआउट फ़ोल्डर में एक स्थानीय। Xml है - चाइल्ड थीम से केवल स्थानीय। Xml लोड किया जाएगा, इसलिए किसी भी CSS, JS या बेस लोकल .xml में लेआउट अपडेट लोड नहीं होता है।

Page.xml (इसलिए स्थानीय के रूप में एक ही कार्यक्षमता के लिए लेकिन विरासत के साथ) की अनुमति के बिना, मैं बेस के लिए xml फ़ाइल और बच्चे के लिए एक कि दोनों को कैसे बुलाया जाएगा?

क्या यह प्रयोग करने योग्य xml फ़ाइल (उदाहरण: base-local.xml) को जोड़ने के एकमात्र उद्देश्य के साथ एक मॉड्यूल बनाने की आवश्यकता होगी?

जवाबों:


9

आप सही हैं, और यह कई विषयों वाली साइटों के लिए एक मान्य और उपयोग किया गया दृष्टिकोण है। अतिरिक्त (अल्प-ज्ञात, शायद ही कभी उपयोग किए जाने वाले) विकल्पों में से कुछ जोड़े हैं, जिनका उपयोग लेआउट अपडेट के लिए किया जा सकता है जो विभिन्न स्टोर स्कॉप्स पर लागू होते हैं: स्टोर हैंडल और थीम हैंडल।

एक्शन कंट्रोलर सुपरक्लास Mage_Core_Controller_Varien_Action(लिंक) से :

public function addActionLayoutHandles()
{
    $update = $this->getLayout()->getUpdate();

    // load store handle
    $update->addHandle('STORE_'.Mage::app()->getStore()->getCode());

    // load theme handle
    $package = Mage::getSingleton('core/design_package');
    $update->addHandle(
        'THEME_'.$package->getArea().'_'.$package->getPackageName().'_'.$package->getTheme('layout')
    );

    // load action handle
    $update->addHandle(strtolower($this->getFullActionName()));

    return $this;
}

'Deutsch' कोड और 'default' पैकेज, 'german' थीम के थीम कॉन्फ़िगरेशन के साथ एक स्टोर के लिए, निम्नलिखित हैंडल लगभग हर दृश्य पर लागू होंगे, क्योंकि अधिकांश दृश्य उनका उपयोग करते हैं:

<STORE_deutsch>
<THEME_frontend_default_german>

लागू करने से इन हैंडल का उपयोग उसी तरह से किया जा सकता है जैसे कि <default />


आह, यह जानना उपयोगी है - मुझे लगता है कि मेरा उपयोग-मामला थोड़ा अलग है कि आप क्या सुझाव दे रहे हैं - आप अभी भी एक 'आधार' थीम में एक स्थानीय। Xml लेंगे लेकिन फिर बच्चे के विषयों को लक्षित करने के लिए <THEME_frontend_default_erman_ का उपयोग करें उस आधार विषय से local.xml - प्रत्येक बच्चे के विषय में अलग-अलग local.xml नहीं है? क्या यह सही है या मैं गलत समझ रहा हूं?
ग्लो

बस। दुर्भाग्य से, लक्षित हैंडल मोटे तौर पर लागू होते हैं, इसलिए इसका कोई तरीका नहीं है, कहते हैं, "स्टोर एक्स में कैटलॉग -प्रोडक्ट_व्यू पृष्ठ के लिए रूट ब्लॉक टेम्पलेट को अपडेट करें"। अगर, हालांकि, स्टोर एक्स को सभी पृष्ठों पर एक कस्टम जेएस फ़ाइल की आवश्यकता है, तो इसका उपयोग करना संभव होगा <STORE_x><action method="addJs" block="head"><file>custom/js.js</file></action></STORE_x>
17

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