如何根据自定义模块状态禁用magento中的自定义布局?

时间:2011-02-08 12:33:54

标签: php magento e-commerce mage

我在frontend\default\default\layout\mytemplate创建了一个名为“myblock.phtml”的文件。它只显示一个“检查”按钮,该按钮又调用自定义模块的控制器URL。问题是,我想停止显示该按钮(即; myblock.html模板) 每当自定义模块被禁用,因为它没有启用模块没有意义。任何方式在模块的config.xml中调整??

3 个答案:

答案 0 :(得分:0)

所有模板都应该通过一个块,在块中你可以进行额外的检查,或者当从管理页面禁用你的扩展时,让默认的magento功能禁用块输出

答案 1 :(得分:0)

要扩展Anton的答案,请创建一个类似这样的自定义块类:

class Mypackage_Myextension_Block_Checkbox extends Mage_Core_Block_Template {

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

希望有所帮助!

谢谢, 乔

答案 2 :(得分: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.";
        }
    }
}

?>

因此,当我禁用模块(系统 - >高级 - >禁用模块)时,不会显示块内容。