Magento: переопределение контроллера конфигурации? - PullRequest
0 голосов
/ 18 сентября 2011

Может кто-нибудь подскажите, пожалуйста, как переопределить config контроллер в magento. Я установил свой код конфигурации ниже:

<config>
<modules>
    <Adodis_Themechooser>
        <version>0.1.0</version>
    </Adodis_Themechooser>
</modules>
    <adminhtml>
    <acl>
        <resources>
            <all>
                <title>Allow Everything</title>
            </all>
            <admin>
                <children>
                    <Adodis_Themechooser>
                        <title>Themechooser Module</title>
                        <sort_order>10</sort_order>
                    </Adodis_Themechooser>
                    <system>
                        <children>
                            <config>
                                <children>
                                    <themechooser>
                                        <title>Themechooser</title>
                                    </themechooser>
                                </children>
                            </config>
                        </children>
                    </system>
                </children>
            </admin>
        </resources>
    </acl>
</adminhtml> 
<global>


            <adminhtml> 
                 <rewrite>
                    <themechooser_config>
                        <from><![CDATA[#^/admin/system_config/#]]></from>
                        <to>/themechooser/config/</to>
                    </themechooser_config>
                </rewrite>
            </adminhtml>

    <models>
        <themechooser>
            <class>Adodis_Themechooser_Model</class>
        </themechooser>
    </models>
    <helpers>
        <themechooser>
            <class>Adodis_Themechooser_Helper</class>
        </themechooser>
    </helpers>
 </global>  
 </config>

1 Ответ

3 голосов
/ 19 сентября 2011

Переопределение контроллера конфигурации означает, что вы будете иметь дело со всеми нажатиями кнопки Сохранить конфигурацию, а не только со своей собственной страницей themechooser.Этот метод переопределения означает, что ни один другой модуль никогда не сможет сделать собственное совместимое переопределение, и синтаксис «от / до» в любом случае устарел.Кроме того, переопределение вообще не требуется, вас интересует только сохранение одного поля, которое можно найти с помощью backend_model .

Возможно, в вашем модуле есть файл etc/system.xml,

<config>
    <sections>
        <themechooser>
            <groups>
                <themechooser>
                    <fields>
                        <example translate="label">
                            <label>This is a text field</label>
                            <frontend_type>text</frontend_type>
                            <backend_model>themechooser/config_example</backend_model>
                            <show_in_default>1</show_in_default>
                        </example>
                    </fields>
                </themechooser>
            </groups>
        </themechooser>
    </sections>
</config>

Обратите внимание на backend_model.Теперь создайте класс, который соответствует themechooser/config_example,

class Adodis_Themechooser_Model_Config_Example extends Mage_Core_Model_Config_Data {

    protected function _afterSave() {
        $value = $this->getValue();
        // $value is the text in the text field
    }

}

Все, что осталось - это использовать $value для установки темы внешнего интерфейса.Поле может быть любого типа, оно не обязательно должно быть текстовым.

...