[英]How to disable custom layouts in magento based on a custom module state?
我在frontend\\default\\default\\layout\\mytemplate
創建了一個名為“ myblock.phtml”的文件frontend\\default\\default\\layout\\mytemplate
它只是顯示一個“ check”按鈕,該按鈕依次調用自定義模塊的控制器url。問題是,我想停止顯示該按鈕(即myblock.html模板)被禁用,因為如果不啟用該模塊就沒有意義。任何在模塊的config.xml中進行調整的方法?
所有模板都應經過一個塊,並且在塊中,您可以進行其他檢查,或者在從管理頁面禁用擴展時讓默認的magento功能禁用塊輸出
要擴展Anton的答案,請創建一個自定義塊類,該類執行以下操作:
class Mypackage_Myextension_Block_Checkbox extends Mage_Core_Block_Template {
protected function _toHtml() {
if(!$this->checkIfModuleIsEnabled()) {
return "";
}
return parent::_toHtml();
}
}
希望有幫助!
謝謝喬
//這是我模塊的塊“ 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.";
}
}
}
?>
因此,當我禁用模塊(系統->高級->禁用模塊)時,塊內容不會顯示。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.