2011-08-18 12 views
7

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

मैंने जांच की है कि फाइलें उनके संबंधित कोड पूल में एक ही स्थान पर हैं और फ़ाइलों को एक ही चीज़ नाम दिया गया है, यह सिर्फ यह नहीं करेगा।

  • /app/code/core/Mage/Checkout/controllers|CartController.php
  • /app/code/local/Mage/Checkout/controllers|CartController.php

उन हैं मेरे पास दो फाइलों के लिए फ़ाइल पथ हैं।

Magento में चेकआउट फ़ाइलों के बारे में कुछ खास है जो उन्हें ओवरराइड होने से रोकते हैं?

उत्तर

14

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

<config> 
    <frontend> [1] 
     <routers> 
      <checkout> [2] 
       <args> 
        <modules> 
         <yourModule before="Mage_Checkout">Namespace_Module_Overwrite_Checkout</yourModule> [3] 
        </modules> 
       </args> 
      </checkout> 
     </routers> 
    </frontend> 
</config> 
 
[1] Depending on the controllers area ,"frontend" or "admin" 
[2] Router node of the module to be overridden (look it up in the config.xml of that module) 
[3] The tag can be anything, it must be unique within the node. 
Your_Module_Overwrite_Checkout (is mapped to directory) 
Your/Module/controllers/Overwrite/Checkout/ 

Hope this helps. 
Regards 
MagePsycho 
+1

इस Magento टीम के लिए एक जिज्ञासु डिजाइन निर्णय है क्योंकि मॉड्यूल के अंदर बाकी सब कुछ स्थानीय कोड पूल में सही जगह पर डालकर आसानी से ओवरराइड किया जा सकता है। –