1

我创建了一个名为“myblock.phtml”的文件。它只frontend\default\default\layout\mytemplate显示一个“检查”按钮,该按钮依次调用自定义模块的控制器 url。问题是,我想停止显示该按钮(即 myblock.html 模板) 每当该自定义模块被禁用时,因为如果不启用该模块就没有意义。有什么方法可以在模块的 config.xml 中进行调整?

4

3 回答 3

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

?>

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

于 2011-02-08T20:21:35.727 回答
0

要扩展 Anton 的答案,请创建一个执行以下操作的自定义块类:

class Mypackage_Myextension_Block_Checkbox extends Mage_Core_Block_Template {

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

希望有帮助!

谢谢,乔

于 2011-02-08T14:11:13.020 回答
0

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

于 2011-02-08T13:32:44.600 回答