使用magento中的system.xml禁用/启用magento中的模块

时间:2017-07-26 01:06:50

标签: magento module system.xml

我已经知道如何通过转到系统&gt;配置&gt;高级并在etc / modules中设置<active>false</active>来禁用系统配置中的模块输出。我想知道的是如何使用我使用system.xml创建的自定义选项卡来禁用模块。

3 个答案:

答案 0 :(得分:1)

将此代码添加到system.xml

<fields>
    <enable translate="label">
        <label>Enable</label>
        <frontend_type>select</frontend_type>
        <source_model>adminhtml/system_config_source_yesno</source_model>
        <sort_order>0</sort_order>
        <show_in_default>1</show_in_default>
        <show_in_website>1</show_in_website>
        <show_in_store>1</show_in_store>
        <comment>enable/disable the module</comment>
    </enable>
</fields>

并在您的代码中检查:在模块中的第一个操作之前。(这可能在您的cron.php or observer.php or indexcontroller中)

$isenabled = Mage::getStoreConfig('section_name/group_name/enable');
if (!$isenabled) {
    return;
}

答案 1 :(得分:0)

您可以在system.xml中添加新的启用/禁用字段,并且在您的模块执行任何代码之前检查此字段值,如果启用则执行,否则不执行,这样就可以实现。

答案 2 :(得分:0)

您必须在xml文件中使用 ifconfig

例如,您在system.xml中创建了一个字段

 <enable translate="label">
<label>enable</label>
<frontend_type>select</frontend_type>
<source_model>adminhtml/system_config_source_yesno</source_model>
<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>

在你的xml文件中

<block class="your Blockname" name="name of field" ifconfig="sectionname/groupname/enable">

如果您的模块已启用,则使用if config,否则它将显示,否则将无法显示..!