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


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.