Magento覆盖本地模块的社区控制器

时间:2013-08-02 09:18:53

标签: magento controller local override

我想从本地模块覆盖“社区”控制器“。我发现了很多关于覆盖核心控制器但没有关于社区控制器的教程。

Magento版本:1.6.1

我目前的状态是: - 覆盖核心控制器=>好 - 覆盖社区控制器=> KO

这是我的文件树:

- community
  - Namespace
    - Mycommunitymodule
      - controllers
        - IndexController.php
- local
  - Namespace
    - Mylocalmodule
      - controllers
        - Mycommunitymodule
          - IndexController.php
      - etc
        - config.xml

我的本​​地模块的来源

<mycommunitymodule>
   <args>
    <modules>
     <Namespace_Mylocalmodule  before="Namespace_Mycommunitymodule">Namespace_Mylocalmodule_Mycommunitymodule</Namespace_Mylocalmodule>
    </modules>
   </args>
</mycommunitymodule>

我的覆盖控制器的源代码:

<?
$origDir = Mage::getModuleDir('controllers','Namespace_Mycommunitymodule').DS;
require_once $origDir.'IndexController.php';
class Namespace_Mylocalmodule_Mycommunitymodule_IndexController extends     Namespace_Mycommunitymodule_IndexController
{
 public function indexAction() {
      zend_Debug::Dump("test surchargé");
 }
}

提前谢谢

1 个答案:

答案 0 :(得分:0)

看起来几乎正确。 尝试替换

<Namespace_Mylocalmodule  before="Namespace_Mycommunitymodule">Namespace_Mylocalmodule_Mycommunitymodule</Namespace_Mylocalmodule>

通过

<Namespace_Mylocalmodule  before="Namespace_Mycommunitymodule">Namespace_Mylocalmodule</Namespace_Mylocalmodule>

和类名 Namespace_Mylocalmodule_Mycommunitymodule_IndexController Namespace_Mylocalmodule_IndexController 作为其文件名和文件夹(如果需要)。