Клиентский модуль не работает в локальном пуле кодов [дубликат]


Я хочу внести некоторые незначительные изменения в AccountController.php. Итак, у меня есть копия AccountController.php из app/code/core/Mage/Customer/controllers/AccountController.php чтобы app/code/local/Mage/Customer/controllers/AccountController.php

Но это не работает ни в коем случае?

Author: Adarsh Khatri, 2015-09-09

3 answers

Ваш код должен выглядеть примерно так...

Config.xml

<?xml version="1.0"?>
<config>
    <frontend>
        <routers>
            <customer>
                <args>
                    <modules>
                        <[vendor]_[modulename] before="Mage_Customer">[Vendor]_[ModuleName]</[vendor]_[modulename]>
                    </modules>
                </args>
            </customer>
        </routers>
    </frontend>
</config>

И ваш класс

Приложение/код/локальное/[Поставщик]/[Имя модуля]/controllers/AccountController.php

<?php

require_once Mage::getModuleDir('controllers', 'Mage_Customer').DS.'AccountController.php';

class [Vendor]_[Module]_AccountController extends Mage_Customer_AccountController
{
    // do code
}

В качестве примечания, копирование классов блоков/моделей в локальный пул кода никогда не является хорошей идеей. Это увеличивает боль, которую вы испытаете при попытке обновления, потому что в тех файлах, которые вам придется скопировать, могут быть изменения.

 5
Author: Smartie, 2015-09-09 12:39:38

Копирование файлов в локальный пул кода будет работать только для блоков, помощников и моделей. Вы не можете переопределить контроллеры, используя этот метод, так как они не загружаются автоматически, как другие классы.

Следуйте этому вопросу ссылка

 2
Author: Qaisar Satti, 2017-04-13 12:55:06

Создание пользовательского модуля выглядит следующим образом:

Шаг 1: - Создайте файл Custom_Module.xml в app\etc\module\Custom_Module.xml и добавьте приведенный ниже код.

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

Шаг 2: - Создайте файл config.xml в app\code\local\Custom\Module\etc\config.xml и добавьте приведенный ниже код.

<?xml version="1.0"?>
<config>
  <modules>
    <Custom_Module>
      <version>0.1.0</version>
    </Custom_Module>
  </modules>
  <global>
                <rewrite>        
            <custom_module_customer_accountcontroller>
                <from><![CDATA[#^/customer/account/#]]></from> <!-- Mage_Customer_AccountController  -->
                <to>/module/customer_account/</to> <!-- Custom_Module_Customer_AccountController  -->
            </custom_module_customer_accountcontroller>
                </rewrite>
  </global>
</config>

Шаг 3: - Создайте файл AccountController.php в app\code\local\Custom\Module\controllers\Customer\AccountController.php и добавьте следующее код.

<?php
require_once "Mage/Customer/controllers/AccountController.php";  
class Custom_Module_Customer_AccountController extends Mage_Customer_AccountController{
        // here your function
}

Надеюсь, это поможет!

 0
Author: AddWeb Solution Pvt Ltd, 2015-09-09 13:03:27