2012-02-19 16 views
8

हाय मैं Mage_Customer_AccountController को ओवरराइड करने का प्रयास कर रहा हूं, ताकि मैं createPostAction विधि का विस्तार कर सकूं। मेरे जीवन के लिए मैं ऐसा नहीं कर सकता, यह या तो 404 पेज फेंकता है, जो बताता है कि यह फ़ाइल के लिए सही पथ नहीं है या यह संरेखण के लिए डिफ़ॉल्ट है।Magento: ग्राहक खाता नियंत्रक ओवरराइडिंग

<rewrite> 
     <company_modulename_account> 
      <from><![CDATA[#^/customer/account/#]]></from> 
      <to>/modulename/account</to> 
     </company_modulename_account> 
</rewrite> 

मेरे नियंत्रक यहाँ AccountController.php

+1

क्या आपको इसे ओवरराइड करना है? इवेंट ऑब्जर्वर का उपयोग करने के लिए यह बहुत बेहतर अभ्यास है जो ग्राहक_सेव_फॉर इवेंट के लिए सुनता है और आपके आवश्यक चरणों को एक decoupled, अपग्रेड-सुरक्षित तरीके से करता है –

उत्तर

24

इसके बजाय स्थित है स्थानीय/कंपनी/modulename/नियंत्रक /, आप के रूप में की कोशिश कर सकते हैं:

... 
<frontend> 
     <routers> 
      <customer> 
       <args> 
        <modules> 
         <company_modulename before="Mage_Customer">Company_Modulename</company_modulename> 
        </modules> 
       </args> 
      </customer> 
     </routers> 
    </frontend> 
... 

और एक नियंत्रक वर्ग बनाने के लिए:
एप्लिकेशन/कोड/[codePool] /Company/Modulename/controllers/AccountController.php
निम्न कोड के साथ:

require_once 'Mage/Customer/controllers/AccountController.php'; 
class Company_Modulename_AccountController extends Mage_Customer_AccountController 
{ 
    public function createPostAction(){ 
     die('Overriden'); 
    } 
} 

यहाँ नियंत्रक अधिभावी के बारे में अधिक जानकारी है:
https://stackoverflow.com/a/7117076/887385

गुड लक !!

+0

बिल्कुल सही, इसके लिए धन्यवाद! – jamessy

+3

Magento 1.7 के साथ केवल यह मेरे लिए काम करता है: कंपनी_Modulename

+0

@ केविन हॉर्स्ट टिप्पणी के लिए +1। 1.6.एक्स सीई पर हूं। समस्या क्या है और यह अपडेट करेगा। – Haijerome

संबंधित मुद्दे