我想覆盖商店的默认功能(添加一些字段,例如佣金,交付位置等),但我无法对其进行配置。我的配置文件如下

    <config>
  ...

    <admin>
        <routers>
            <adminhtml>
                <args>
                    <modules>
                        <store before="Mage_Adminhtml">Mycompany_Store_Adminhtml_Store</store>
                    </modules>
                </args>
            </adminhtml>
        </routers>
</admin>
 </global>
....
 </config>

它根本不起作用。

有帮助吗?

解决方案 3

终于我想出了一个解决方案。

<global>

        <rewrite>        
            <mycompany_store_adminhtml_system_storecontroller>
                <from><![CDATA[#^/admin/system_store/#]]></from> <!-- Mage_Adminhtml_System_StoreController  -->
                <to>/store/adminhtml_system_store/</to> <!-- Mycompany_Store_Adminhtml_System_StoreController  -->
            </mycompany_store_adminhtml_system_storecontroller>
        </rewrite>
</global>

其他提示

通过我对Marius的回答的评论,他的解决方案应该起作用。

但是,您应该使用 system.xml, ,这使您可以在系统配置中指定字段。然后,您可以使用 Mage::getStoreConfig() 并执行您需要的逻辑。

<sections>
    <general>
        <groups>
            <store_information>
                <fields>
                    <commission>
                        <label>Commission</label>
                        <frontend_type>text</frontend_type>
                        <sort_order>10</sort_order>
                        <show_in_default>1</show_in_default>
                        <show_in_website>1</show_in_website>
                        <show_in_store>1</show_in_store>
                    </commission>
                </fields>
            </store_information>
        </groups>
    </general>
</sections>

尝试使用此配置:

<admin>
        <routers>
            <adminhtml>
                <args>
                    <modules>
                        <Mycompany_Store before="Mage_Adminhtml">Mycompany_Store_Adminhtml</Mycompany_Store>
                    </modules>
                </args>
            </adminhtml>
        </routers>
</admin>

您的控制器应该在此文件中:Mycompany/Store/controllers/Adminhtml/System/StoreController.php 它应该看起来像这样:

<?php
require_once 'Mage/Adminhtml/controllers/System/StoreController.php';
class Mycompany_Store_Adminhtml_System_StoreController extends Mage_Adminhtml_System_StoreController{
    //your methods here
}

这就是您应该覆盖商店控制器的方式。我不明白的是为什么您需要这样做。您可以使用一个模块中的System.xml文件在系统 - >配置部分中添加所需的所有设置,您可以轻松地使用它们读取它们 Mage::getStoreConfig('path/to/setting').
或者,如果您想要商店实体中的额外字段,只需在表中添加它们 core_store 和它们的字段以添加/编辑存储的形式为它们。 这是你的做法.

我真的建议将您的值放在配置部分。

许可以下: CC-BY-SA归因
scroll top