Magento इसके विन्यास मूल्यों रनटाइम पर सीधे विन्यास वस्तु के वृक्ष संरचना से है, तो आप विन्यास वस्तु की मूल setNode
विधि का उपयोग करने के मूल्यों को बदलने की जरूरत पढ़ता है। हालांकि, Magento loads in scoped configuration (स्वयं लिंक) के तरीके के कारण, ऐसा लगता है कि यह सीधे आगे नहीं है।
Magento के वर्तमान संस्करणों के साथ (और मुझे विश्वास है, लेकिन पुराने संस्करणों के साथ परीक्षण नहीं किया गया है), आपको वर्तमान store
के लिए कॉन्फ़िगरेशन मान को नोड्स के सेट में सेट करने की आवश्यकता होगी।
चरण एक वर्तमान में सेट स्टोर के लिए कोड प्राप्त कर रहा है। इसके बाद आप निम्न
$store = Mage::app()->getStore();
$code = $store->getCode();
साथ प्रोग्राम के रूप में यह कर सकते हैं, तो आप इस सब की जरूरत होने की निम्नलिखित कॉल
$config = Mage::getConfig();
$config->setNode("stores/$code/web/unsecure/base_skin_url", 'value_to_set');
ध्यान रखें के साथ एक विन्यास मूल्य निर्धारित कर सकते हैं के बाद Magento विन्यास को चलाया गया है वस्तु। यह भी ध्यान रखें कि वहां एक ऐसा समय है जहां Magento के पास एक लोड कॉन्फ़िगरेशन होगा, लेकिन स्टोर ऑब्जेक्ट लोड नहीं होगा। यदि ऐसा है तो आप स्टोर ऑब्जेक्ट से स्टोर कोड लोड नहीं कर पाएंगे।
मैंने अपने Pulse Storm Chaos module में कुछ ऐसा ही किया। यदि आप काम कोड में रूचि रखते हैं तो यह Github पर है।
स्रोत
2012-10-10 23:05:03
अच्छा स्पष्टीकरण एलन के लिए धन्यवाद! मैं देख सकता हूं कि यह प्रति-स्टोर कॉन्फ़िगरेशन पर कैसे अच्छा काम करेगा, लेकिन अगर मैं अपने स्टोर कॉन्फ़िगरेशन विकल्प का उपयोग करने के लिए सभी स्टोर (और वेबसाइट) चाहता हूं तो क्या होगा? संक्षेप में, मैं चाहता हूं कि मेरा कस्टम कॉन्फ़िगरेशन विकल्प वैश्विक हो ... –
@ChuckD लघु संस्करण: आपको सिस्टम में प्रत्येक स्टोर (एकाधिक कॉल) के लिए इसे जोड़ना होगा। जब Magento स्टोर/store_code नोड्स बनाता है तो यह डिफ़ॉल्ट और वेबसाइट मानों को ध्यान में रखता है। इस तरह, getStoreConfig विधि हमेशा सही मान खोजने के लिए स्टोर/store_code पर देख सकती है। –
चक, क्या आपने '$ config-> setNode (" वैश्विक/वेब/असुरक्षित/base_skin_url ", 'value_to_set') की कोशिश की है;'? बस एक विचार, untested। – Jongosi