2012-12-03 14 views
5

वैसे भी अंतिम एक्सएमएल संरचना Magento की जांच करने के लिए & पार्सिंग के बाद सभी अलग-अलग एक्सएमएल फाइलों को मिलाकर आता है?मैगेंटो की अंतिम एक्सएमएल संरचना की जांच

  1. उस तरह है जो इंटरनेट पर खोज कर पर कर दिया की कुछ भी नहीं है और मैं मेरे जैसे किसी के लिए लगता है, Magento लेआउट शुरुआत & में बहुत अधिक एक सा मैं कोड तरफ सब कुछ करने की कोशिश करेंगे थे।
  2. एक और चीज जो विभिन्न नोड्स का नाम चुनने में मदद करेगी, जिसे हम अंतिम एक्सएमएल संरचना से तुरंत उपयोग कर सकते हैं।
  3. इस में कभी भाग नहीं आया लेकिन मेरा मानना ​​है कि हमारे पास क्या ओवरराइडिंग की बेहतर तस्वीर होगी।
+0

मैंने कभी यह प्रयास नहीं देखा है। मुझे पता है कि वहां बहुत सारे नियंत्रक स्वतंत्र रूप से उपलब्ध हैं जो आपको सही रास्ते पर स्थापित करेंगे, लेकिन यह कि Magento इतना विभाजित है, मुझे लगता है कि कोई "आसान" समाधान नहीं है। – Zak

+0

मैंने इस क्यू को घटा दिया है क्योंकि यह ओपन-एंड है और कोई प्रयास नहीं दिखाता है। मुझे लगता है कि यह एक संभावित दिलचस्प विषय है। – clockworkgeek

+0

@clockworkgeek क्या आपको डाउनवॉट नहीं करना चाहिए जो एक अच्छे प्रश्न के रूप में योग्य नहीं है? और यदि यह दिलचस्प है, तो इसे क्यों कम करें? मेरे पास ऐसा कुछ करने के लिए Magento mojo नहीं है लेकिन यह निश्चित रूप से सीखने में मदद करेगा। यदि आप असहमत हैं तो अपना डाउनवोट रखें। – Ashfame

उत्तर

7

निम्नलिखित आप app/etc/*.xml से मर्ज किए गए विन्यास मिल जाएगा , app/etc/modules/*.xml, साथ ही साथ प्रत्येक (सक्रिय) मॉड्यूल की config.xml फ़ाइल; जब config पुन: प्राप्त करने हालांकि वहाँ क्या ओवरराइट किया गया का कोई संकेत नहीं है, के रूप में मर्ज के होने के रूप में प्रत्येक कॉन्फ़िग फ़ाइल को पार्स किया जाता है:

Mage::getConfig()->getNode()->asNiceXml(); // or asXML() | asArray() | etc. 

लेकिन, आप के बारे में पूछ करने के लिए कैसे आवेदन इस का उपयोग करता है लगता है जानकारी। यह एप्लिकेशन डिजाइन का एक कार्य है।

इसके अलावा, आप "सभी अलग-अलग एक्सएमएल फाइलों" का जिक्र करते हैं। यह ध्यान देने योग्य है कि इन्हें एक विशाल वस्तु उदाहरण में बनाए रखा नहीं जाता है। उदाहरण के लिए, लेआउट एक्सएमएल लेआउट अद्यतन वस्तु Mage_Core_Model_Layout_Update का उपयोग करके पहुँचा जाता है और सार्थक पहुँचा जा सकता है के बाद यह लोड हो गया है और चालाकी से किसी दिए गए प्रतिपादन क्षेत्र के लिए (उदाहरण के लिए एक नियंत्रक कार्रवाई में loadLayout()):

Mage::app()->getLayout()->getUpdate()->asString(); // or asSimplexml() or asArray() 
2

हाँ - वाणिज्यबग। साथ ही साथ अन्य उपयोगी विशेषताओं का पूरा भार, आप Magento द्वारा निर्मित संपूर्ण XML संरचना को भी देख सकते हैं।

http://store.pulsestorm.net/products/commerce-bug-2

+0

बढ़िया! क्या यह v1 में था? मुझे लगता है कि मेरे पास एक प्रति है। – Ashfame

+0

हां, यह v1 में है (यही मुझे मिला है)। एक लेआउट टैब है जो आपको पूर्ण एक्सएमएल संरचना दिखाता है :) – McNab

+1

इसके अलावा, लेआउट मर्ज प्रदर्शित करना पहले मॉड्यूल प्रदर्शनों में से एक था जो एलेंट स्टॉर्म magentocommerce.com वेबसाइट पर सबमिट किया गया था। यह बेहद मूल्यवान रहा है और मेरे लिए वाणिज्य बग खरीदने का आधार था। –

1

मैं निम्नलिखित इच्छा उत्पादन का मानना ​​है एक्सएमएल: echo Mage::getConfig()->getXmlString();

आप कुछ इस तरह के साथ एक स्क्रिप्ट बना सकते हैं:

header("Content-Type:text/xml"); 

require_once '../app/Mage.php'; 

Mage::app(); 

echo Mage::getConfig()->getXmlString(); 
+0

यह विधि कहां परिभाषित की गई है? – benmarks

+0

@benmarks: Varien_Simplexml_Config, और यह अनिवार्य रूप से आपके द्वारा उल्लिखित कोड को कॉल करता है, इसलिए यह मूल रूप से केवल एक छोटा सा कट है। – jmspldnl

0

उत्तर के आधार पर benmarks से मैंने किया था

echo "<pre>".htmlspecialchars(Mage::getConfig()->getNode()->asNiceXml())."</pre>"; 

आप उदाहरण Magento 1 में ब्लॉक विन्यास को देखने के लिए आप एक ब्राउज़र में इसे करने के लिए एक फ़ाइल में इस डाल सकते हैं, साइट के रूट पर फ़ाइल जगह है और नेविगेट के लिए करना चाहते हैं:

<?php 
include("app/Mage.php"); 
Mage::app(); 

//just see blocks... 
echo "<pre>".htmlspecialchars(Mage::getConfig()->getNode()->global->blocks->asNiceXml())."</pre>"; 
die(); 
संबंधित मुद्दे