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')) { ... }
在检查模块是否启用时我发现了这段代码
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')) { ... }