Magento 模块在管理员中被禁用,但在前端检查时仍显示为已启用

Magento module disabled in admin but still shows as enabled when checking in front-end

在检查模块是否启用时我发现了这段代码

Mage::getConfig()->getModuleConfig('Mage_Checkout')->is('active', 'true')

但我认为这仅适用于在 config.xml 中具有 <active> 标记的模块。就我而言,我在管理员中禁用了 Mage_Checkout 模块 ,但当我尝试调用该函数时它始终显示为活动状态。

是否有其他方法可以检查管理区域是否禁用了某个模块?感谢您的帮助!

如果你想从管理员那里检查模块输出是否启用,那么你可以使用

Mage::helper('core')->isModuleOutputEnabled("your_module_name")

如果您想禁用该模块,可以使用代码来实现。

转到 app\etc\modules 打开 xml 文件并将 <active>true</active> 设置为 <active>false</active>

并且您可以通过检查 xml

来检查模块是否处于活动状态

您无法真正从管理面板禁用扩展程序。 "Disable Modules Output" 配置有点误导,它所做的只是跳过渲染相应模块的块和管理菜单。

当然,您可以检查此配置以根据需要隐藏或禁用更多内容。这是 Mage_Checkout:

的检查
if (Mage::helper('core')->isModuleOutputEnabled("Mage_Checkout")) { ... }

请注意,如果模块 未激活 ,这也会 return true,因为它只检查是否有 "disable module output" 配置对于这个模块。所以你需要结合这两个检查:

if (Mage::helper('core')->isModuleOutputEnabled("Mage_Checkout") &&
    Mage::getConfig()->getModuleConfig('Mage_Checkout')->is('active', 'true')) { ... }