1

我在我的模块 config.xml 文件中使用 rewrite 重载了管理 productController:

<from><[CDATA [# ^ admin / catalog_product / #]]> </ from>
<to>/mymodule/catalog_produc/</to>

它在开发环境中运行良好,但在生产环境中不起作用,它找不到我的控制器。

经过调查,我发现local.xml中的管理路径在两个环境中是不一样的:生产环境

<admin>
     <routers>
         <adminhtml>
             <args>
                 <frontName> <! [CDATA [admin-prod]]> </ frontName>
             </ args>
         </ adminhtml>
     </ routers>
</ admin>

发展环境

<admin>
     <routers>
         <adminhtml>
             <args>
                 <frontName> <! [CDATA [*admin-prod*]]> </ frontName>
             </ args>
         </ adminhtml>
     </ routers>
</ admin>

我的问题是如何在我的模块 config.xml 中动态获取 frontname 以正确设置并动态重写,如下所示: <[CDATA [# ^ admin-prod / catalog_product / #]]> ??????

4

1 回答 1

0

如果您不使用古老的 Magento 版本(早于 1.3),则不再需要这种基于正则表达式的控制器重写。改用这个:

配置文件

<admin>
    <routers>
        <adminhtml>
            <args>
                <modules>
                    <mymodule before="Mage_Adminhtml">MyNamespace_MyModule</mymodule>
                </modules>
            </args>
        </adminhtml>
    </routers>
</admin>

现在 Magento 将查找MyNamespace_MyModule_Catalog_ProductControllerbeforeMage_Adminhtml_Catalog_ProductController并在找到它时使用它,而不管路由的前面名称。

于 2013-02-24T23:03:30.657 回答