簡體   English   中英

Magento:獲取“禁用模塊輸出”的值

[英]Magento: fetch value of “disable module output”

Magento后端允許您禁用每個站點的模塊輸出。 我已經完成了一些谷歌搜索,但無法弄清楚如何通過我的代碼獲取此值。 基本上,當我的模塊輸出被禁用時,工作正常。 但我發現(艱難的方式)Magento並沒有阻止模塊加載每個站點。

因為我正在擴展一些核心類,所以一些構造函數仍在執行中。 我的想法是檢查模塊輸出是否被禁用。 如果是這樣,讓我的構造函數調用父的構造函數。 如果啟用了模塊輸出,請繼續我的自定義代碼。

我只是無法弄清楚如何獲取當前站點的這個值(我是多站點,BTW)。 理想情況下它會是這樣的:

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

基本上有一行可以獲取當前站點的值(如果沒有為當前站點指定,則為默認值)。

任何幫助將不勝感激!

編輯:我找到了表core_config_data,它似乎存儲了這些信息。 如果必須的話,我可以手動查詢它,但我覺得Magento會有內置的東西來返回當前商店的值,然后回到默認值。

這是一個標准的配置設置,因此訪問它應該與訪問任何其他配置設置沒有什么不同。 您只需要知道該值的路徑是什么。 分析數據庫我相信這應該可以解決問題:

Mage::getStoreConfig('advanced/modules_disable_output/Namespace_Module');

另一個選項是Mage_Core_Helper_Abstract有一個isModuleEnabled($moduleName = null)方法,這意味着你應該能夠調用:

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

還有一個isModuleOutputEnabled()方法。 查看代碼,這些似乎不會被存儲/視圖過濾,而@ silvo的方法是。

<?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";
    }
}
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM