“本地”结构中的文件更改不起作用

问题描述 投票:0回答:3

当我在“本地”结构中创建文件(例如“核心”中的文件结构)时,Magento 不会看到这种变化。 为什么?也许我需要更改其他文件? 我改变了

core/Mage/Cutomer/controllers/AcountController.php
, 将更改后的文件放入
local/Mage/Cutomer/controllers/AcountController.php
中, 但没有效果。

Magento 使用“核心”文件。

php magento local
3个回答
0
投票

我个人认为创建自定义模块是更好的方法,因为您可以使用“ModuleName”作为描述来指示该模块将对核心进行哪些更改,并使其他开发人员更容易修改您的代码未来

应用程序/代码/本地/MageIgniter/ModuleName/controllers/AcountController.php

<?php
   require_once Mage::getModuleDir('controllers', 'Mage_Customer').DS.'AccountController.php';
   class MageIgniter_ModuleName_AccountController extends Mage_Customer_AccountController{

   }

应用程序/代码/本地/MageIgniter/ModuleName/etc/config.xml

<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
  <MageIgniter_ModuleName>
    <version>0.0.1</version>
  </MageIgniter_ModuleName>
</modules>
<frontend>
  <routers>
    <customer>
      <args>
        <modules>
          <MageIgniter_ModuleName before="Mage_Customer">MageIgniter_ModuleName</MageIgniter_ModuleName>
        </modules>
      </args>
    </customer>
  </routers>
</frontend>
</config>

/app/etc/modules/MageIgniter_ModuleName.xml

<config>
    <modules>
        <MageIgniter_ModuleName>
            <active>true</active>
            <codePool>local</codePool>
        </MageIgniter_ModuleName>
    </modules>
</config> 

阅读更多@

如何扩展Magento核心控制器?

Magento:覆盖核心文件(块、模型、资源、控制器)


-1
投票

创建您自己的模块并编写一个挂钩到 magento 逻辑的观察者。


-1
投票

我认为magento是以代码池为“核心”的。 所以它开始在核心直接查找该类。

这样你就可以更改文件 应用程序 -> 等 -> 模块 -> Mage_All.xml 找到以下内容并更改代码池,例如更改为

   <Mage_Customer>
         <active>true</active>
        <codePool>local</codePool>
        <depends>
            <Mage_Eav/>
            <Mage_Dataflow/>
            <Mage_Directory/>
        </depends>
    </Mage_Customer>
© www.soinside.com 2019 - 2024. All rights reserved.