Вопрос

Я хочу переопределить функциональность магазинов по умолчанию (добавляя некоторые поля, такие как комиссия, место для доставки и т. Д.), Но я не могу его настроить. Мой файл конфигурации следующим образом

    <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>

Другие советы

С моим комментарием ответа Мариуса его решение должно работать.

Тем не менее, вы должны делать это, используя 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-> Configuration, используя файл System.xml из одного из ваших модулей, и вы можете легко прочитать их с помощью Mage::getStoreConfig('path/to/setting').
или если вы хотите дополнительные поля в объекте магазина, просто добавьте их в таблицу core_store и поля для них в форме для магазина добавить/редактировать. Вот как ты можешь это сделать.

Я действительно рекомендую поместить ваши значения в раздел конфигурации.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top