[英]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.