如何在Magento中通过Xml禁用每个主题的模块

时间:2014-05-30 07:53:20

标签: php xml magento module themes

我希望找到一种方法来按主题禁用主题上的特定扩展名?

假设情景: 我想为我现有的magento网站开发一个移动主题。 该网站有许多扩展程序,与我的移动设计不相符。

我没有重新处理所有的css /模板文件,而是希望恢复为magento的默认值。

是否有一种方法可能在/ design / frontend / mypackage /我可以禁用这些扩展的位置?

3 个答案:

答案 0 :(得分:1)

无法在主题基础上禁用模块。

但是,您可以通过检查实际的包/主题来阻止执行模块代码。这显然是一种解决方法而不是非常优雅,但确实有效。

E.g。以下代码中的代码:

<?php
$packageName = Mage::getSingleton('core/design_package')->getPackageName();
$themeName = Mage::getSingleton('core/design_package')->getTheme('frontend');

if ($themeName != 'MobileThemeName') {
    // Your module code
}

答案 1 :(得分:0)

您无法为每个商店/主题停用扩展程序。但是,您可以通过转到

来禁用该扩展程序生成的输出
  

配置&gt; <当前配置范围>高级&gt;高级&gt;   禁用模块输出

此操作仅禁用模块输出。如果你的模块使用了,让我们说一些Observer功能挂钩到系统的某个部分并做一些覆盖,那么这些动作就不会被禁用。

要完全禁用模块,您需要转到模块配置文件,如/etc/ActiveCodeline_MyModule.xml,并将其活动参数设置为false,如:

<config>
    <modules>
        <activecodeline_mymodule>
            <active>false</active>
            <codepool>local</codepool>
        </activecodeline_mymodule>
    </modules>
</config>

更多信息How to fully disable (turn off) Magento module&amp; Disable Magento extention/module on mobile theme

答案 2 :(得分:0)

您可以在local.xml中禁用该模块。只需将以下xml代码粘贴到主题的local.xml中即可。

<config>
    <modules>
        <[Your_Module_Name]>
            <active>false</active>
        </[Your_Module_Name]>
    </modules>
</config>