【问题标题】:How to disable custom layouts in magento based on a custom module state?如何根据自定义模块状态禁用 magento 中的自定义布局?
【发布时间】:2011-02-08 12:33:54
【问题描述】:

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

【问题讨论】:

    标签: php magento e-commerce mage


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      希望有帮助!

      谢谢, 乔

      【讨论】:

      • 考虑在某处使用Mage::helper('core')->isModuleOutputEnabled($moduleName)
      • 谢谢,这绝对是个好建议。就个人而言,我从不相信 Magento 的输出禁用能力,但其他人可能不会像我一样看待它。
      • 谢谢!!对于示例代码。我使我的模块真正模块化。以前我直接调用模板块,但现在我将它传递给我的模块块并使其显示模板。由于未知原因,我无法在此评论中发布我的块代码盒子(被打乱了)...
      【解决方案3】:

      //这是我模块块“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.";
              }
          }
      }
      
      ?>
      

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

      【讨论】:

      • 这有点矫枉过正,您可以只从配置中询问您的扩展活动状态,而不是遍历所有加载的扩展。如果您的扩展程序使用块,那么这个条件就毫无意义,因为如果从管理页面禁用扩展程序,所有块输出都会被禁用
      猜你喜欢
      • 2015-02-23
      • 2013-06-03
      • 2010-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-10
      • 2010-11-25
      相关资源
      最近更新 更多