2011-02-08 15 views
1

我在frontend\default\default\layout\mytemplate中創建了一個名爲「myblock.phtml」的文件,它只是顯示一個「檢查」按鈕,輪流調用自定義模塊的控制器url。問題是,我想停止顯示該按鈕(即; myblock .html模板) 無論何時該自定義模塊被禁用,因爲它沒有啓用沒有啓用module.Any方法來調整模塊的config.xml?如何根據自定義模塊狀態禁用magento中的自定義佈局?

回答

0

//這是在我的模塊塊「Checkbox.php」的代碼。只是可能對他人有用的..

<?php 
class Mypackage_Myextension_Block_Checkbox extends Mage_Core_Block_Template { 

    //echos a text based on module state 
    protected function checkstate() { 

     $modules = Mage::getConfig()->getNode('modules')->children(); 
     $modulesArray = (array)$modules; 

          //my module name 
     if($modulesArray['Mypackage_Myextension']->is('active')) { 
      echo "Mypackage_Myextension is active."; 
     } 
     else { 
      echo "Mypackage_Myextension is not active."; 
     } 
    } 
} 

?> 

因此,當我禁用模塊(系統 - >高級 - >禁用模塊),塊內容不顯示。

0

所有模板應該經過塊和塊可以進行額外的支票或讓默認的Magento功能禁用塊的輸出,當你的擴展從管理頁面禁用

+0

感謝您的想法。 – PraveenMax 2011-02-08 20:23:29

0

爲了擴大在安東的回答,創建一個自定義塊班級,這樣做是這樣的:

class Mypackage_Myextension_Block_Checkbox extends Mage_Core_Block_Template { 

    protected function _toHtml() { 
     if(!$this->checkIfModuleIsEnabled()) { 
      return ""; 
     } 
     return parent::_toHtml(); 
    } 
} 

希望幫助!

謝謝, 喬

+0

考慮在那裏使用`Mage :: helper('core') - > isModuleOutputEnabled($ moduleName)`。 – clockworkgeek 2011-02-08 14:39:29

+0

謝謝,這絕對是一個很好的建議。就我個人而言,我從未信任Magento的輸出禁用權力,但其他人可能不會像我那樣看待它。 – 2011-02-08 18:25:49