문제

I try to override Mage_Customer_AddressController, but my way doesn't work. Used original documentation from magentocommerce.com and some blog posts (by Inchoo and Pfay) too. Please explain me, what I'm doing wrong?

module config.xml:

<config>
    <modules>
        <companyname_General>
            <version>1.0.5</version>
        </Companyname_General>
    </modules>
    <global>
        <helpers>
            <Companyname_general>
                <class>Companyname_General_Helper</class>
            </Companyname_general>
        </helpers>
        <blocks>
            <catalog>
                <rewrite>
                    <product_list_toolbar>Companyname_General_Block_Catalog_Product_List_Toolbar</product_list_toolbar>
                </rewrite>
            </catalog>
        </blocks>
        <rewrite>
            <companyname_general_customer_address>
                <from><![CDATA[#^/customer/address/#]]></from>
                <to>/general/customer_address</to>
            </companyname_general_customer_address>
        </rewrite>
    </global>
    <frontend>
        <routers>
            <customer>
                <use>standard</use>
                <agrs><companyname_general before="Mage_Customer">Companyname_General</companyname_general></agrs>
            </customer>
        </routers>
    </frontend>
</config>

Companyname_General_AddressController:

<?php
require_once(Mage::getModuleDir('controllers','Mage_Customer').DS.'AddressController.php');
class Companyname_General_Customer_AddressController extends Mage_Customer_AddressController
{
    public function testAction()
    {
        die('works too!');
    }

}

ps: Magento Enterprise 1.12

도움이 되었습니까?

해결책

First of all issue in helper Companyname_general should be companyname_general

then helper Mage::helper('companyname_general')

<helpers>
            <companyname_general>
                <class>Companyname_General_Helper</class>
            </companyname_general>
        </helpers>

config.xml(Path Is app/code/local/Companyname/General/etc/) code is

<?xml version="1.0" ?>
<config>
    <modules>
        <Companyname_General>
            <version>1.0.5</version>
        </Companyname_General>
    </modules>
    <global>
        <helpers>
            <general>
                <class>Companyname_General_Helper</class>
            </general>
        </helpers>
        <blocks>
            <catalog>
                <rewrite>
                    <product_list_toolbar>Companyname_General_Block_Catalog_Product_List_Toolbar</product_list_toolbar>
                </rewrite>
            </catalog>
        </blocks>
    </global>

    <frontend>
        <routers>
            <customer>
                <args>
                    <modules>
                        <general before="Mage_Customer">Companyname_General</general>
                    </modules>
                </args>
            </customer>
        </routers>
    </frontend>
</config>

controllers AddressController.php(Path: app/code/local/Companyname/General/controllers )

code is

<?php
require_once(Mage::getModuleDir('controllers','Mage_Customer').DS.'AddressController.php');
class Companyname_General_AddressController extends Mage_Customer_AddressController
{
    /**
     * Retrieve customer session object
     *
     * @return Mage_Customer_Model_Session
     */
    protected function _getSession()
    {
        return Mage::getSingleton('customer/session');
    }

    public function preDispatch()
    {
        parent::preDispatch();

        if (!Mage::getSingleton('customer/session')->authenticate($this)) {
            $this->setFlag('', 'no-dispatch', true);
        }
    }
    public function testAction()
    {
        die('works too!');
    }


}

Module file is Companyname_General.xml path is app/etc/modules/ code are

<?xml version="1.0" ?>
<config>
    <modules>
        <Companyname_General>
             <active>true</active>
            <codePool>local</codePool>
        </Companyname_General>
    </modules>
</config>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top