文件“local”中的更改不起作用

时间:2012-11-23 07:24:09

标签: php magento local core

当我在" local"中创建文件时结构就像在"核心"中的文件结构一样,Magento没有看到这些变化。 为什么?可能是我需要更改其他文件? 我改变了core/Mage/Cutomer/controllers/AcountController.php, 将更改的文件放在local/Mage/Cutomer/controllers/AcountController.php中, 但是没有效果。

Magento与"核心"文件。

3 个答案:

答案 0 :(得分:0)

我个人认为创建自定义模块是更好的方法,因为您可以使用'ModuleName'作为描述来指示此模块将对核心做什么更改,并使其他开发人员更容易修改你未来的代码

应用程序/代码/本地/ MageIgniter /模块名/控制器/ AcountController.php

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

   }

应用程序/代码/本地/ MageIgniter /模块名的/ 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> 

了解更多@

How to extend Magento core controller?

Magento: Overriding Core Files (Blocks, Models, Resources, Controllers)

答案 1 :(得分:-1)

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

答案 2 :(得分:-1)

我认为magento将代码池作为“核心”。 所以它开始在核心直接找到该类。

所以你可以改变档案 app - &gt;等 - &gt;模块 - &gt; Mage_All.xml 找到以下内容并更改代码池,改为

   <Mage_Customer>
         <active>true</active>
        <codePool>local</codePool>
        <depends>
            <Mage_Eav/>
            <Mage_Dataflow/>
            <Mage_Directory/>
        </depends>
    </Mage_Customer>