代码之家  ›  专栏  ›  技术社区  ›  Colin O'Dell

Magento:获取“禁用模块输出”的值

  •  4
  • Colin O'Dell  · 技术社区  · 15 年前

    Magento后端允许您禁用每个站点的模块输出。我做过一些Google搜索,但不知道如何通过我的代码获取这个值。基本上,当我的模块的输出被禁用时,工作正常。但我发现(困难的是)Magento并不能阻止模块按站点加载。

    $isThisEnabled = Mage::app()->getCurrentStore()->isOutputEnabled('myModule');

    基本上只有一行获取当前站点的值(或者默认值,如果没有为当前站点指定)。

    任何帮助都将不胜感激!

    编辑:我找到了表core\u config\u data,它似乎存储了这些信息。如果必须的话,我可以手动查询它,但是我觉得Magento会有一些内置的东西来返回当前商店的值,返回到默认值。

    3 回复  |  直到 15 年前
        1
  •  8
  •   silvo    15 年前

    它是一个标准配置设置,因此访问它应该与访问任何其他配置设置没有区别。你只需要知道这个值的路径是什么。分析DB,我认为这应该起到关键作用:

    Mage::getStoreConfig('advanced/modules_disable_output/Namespace_Module');
    
        2
  •  3
  •   Aurelio De Rosa    13 年前

    另一个选择是 Mage_Core_Helper_Abstract 有一个 isModuleEnabled($moduleName = null)

    Mage::helper('core/data')->isModuleEnabled('Namespace_Module')
    

    还有一个 isModuleOutputEnabled() 方法。看看代码,它们似乎没有被store/view过滤,而@silvo的方法是。

        3
  •  2
  •   Nilesh Gosai    11 年前
    <?php
    public function mycontrollerAction()
    {
        $moduleName = 'Namespace_Modulename';//eg Mage_Cms       
        if(Mage::getConfig()->getModuleConfig($moduleName)->is('active', 'true'))
        {
            echo "Module Enable";
        }
        else
        {
          echo "Module Disable";
        }
    }
    ?>
    
    推荐文章