नियंत्रक खाता नियंत्रक को ओवरराइड कैसे करें


12

मुझे एक विधि नियंत्रक को ओवरराइड करने की आवश्यकता है

Core/Mage/Customer/controllers/AccountController.php 

और एक नई विधि जोड़ें। चूंकि यह नियंत्रक संपादित करने के लिए गलत है - इसे ओवरराइड किया जाना चाहिए।

परियोजना की आवश्यकताओं के अनुसार नियंत्रक को ओवरराइड करना चाहिए

local/New/Mage/Customer/controllers/AccountController.php 

ऐसा करने के लिए, एक फ़ाइल कॉन्फ़िगरेशन बनाएं, लेकिन पते customer/account/test, customer/account /ajaxजवाब नहीं दिया, और customer/account/loginयह ओवरराइड नहीं है। कृपया इसे लागू करने में मदद करें।

एप्लिकेशन / एप्लिकेशन / etc / मॉड्यूल / New_Mage_Customer.xml

<?xml version="1.0"?>
<config>
 <modules>
      <New_Mage_Customer>
           <active>true</active>
           <codePool>local</codePool>
      </New_Mage_Customer>
  </modules>
</config>

एप्लिकेशन / कोड / स्थानीय / नई / दाना / ग्राहक / etc / config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <New_Mage_Customer>
            <version>0.0.1</version>
        </New_Mage_Customer>
    </modules>
    <frontend>
        <routers>
            <customer>
                <args>
                    <modules>
                        <new_customer before="Mage_Customer">New_Mage_Customer</new_customer>
                    </modules>
                </args>
            </customer>
        </routers>
    </frontend>
</config>

एप्लिकेशन / कोड / स्थानीय / नई / दाना / ग्राहक / नियंत्रक / AccountController.php

<?php

/**
 * Customer account controller
 */
require_once 'Mage/Customer/controllers/AccountController.php';

class New_Mage_Customer_AccountController extends Mage_Customer_AccountController {

    public function ajaxAction() {
        echo 'ajax!!';
    }

    public function testAction() {
        echo 'test222';
    }

    public function loginAction() {
        echo 'index';
    }

}

धन्यवाद!


यहाँ चेक करें ( magento.stackexchange.com/questions/91413/… )
Patel

जवाबों:


22

फ़ाइल का नाम ऐप / आदि / मॉड्यूल / New_Mage.xml होगा

<?xml version="1.0"?>
<config>
 <modules>
      <New_Mage>
           <active>true</active>
           <codePool>local</codePool>
      </New_Mage>
  </modules>
</config>

में एप्लिकेशन / कोड / स्थानीय / नई / दाना / etc / config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <New_Mage>
            <version>0.0.1</version>
        </New_Mage>
    </modules>
    <frontend>
        <routers>
            <customer>
                <args>
                    <modules>
                        <New_Mage before="Mage_Customer">New_Mage</New_Mage>
                    </modules>
                </args>
            </customer>
        </routers>
    </frontend>
</config>

नियंत्रक ऐप / कोड / स्थानीय / नया / दाना / नियंत्रक / खाता नियंत्रक / एफपीपी होगा

/**
 * Customer account controller
 */
require_once Mage::getModuleDir('controllers', 'Mage_Customer') . DS . 'AccountController.php';

class New_Mage_AccountController extends Mage_Customer_AccountController {

    public function ajaxAction() {
        echo 'ajax!!';
    }

    public function testAction() {
        echo 'test222';
    }

    public function loginAction() {
        echo 'index';
    }

}

संदर्भ


क्या यह सभी customerअनुरोधों को शामिल नहीं करेगा , जिनमें शामिल हैं example.com/customer/address/new/? और अगर इस नए मॉड्यूल में कोई पता नियंत्रक नहीं है, तो सभी /customer/address/*अनुरोध अब 404 होंगे
निक रोलैंडो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.