代码之家  ›  专栏  ›  技术社区  ›  VirtuosiMedia

禁用virtuemart中的moootools

  •  0
  • VirtuosiMedia  · 技术社区  · 14 年前

    我正在创建一个用于显示virtuemart类别的自定义模块,但需要禁用virtuemart加载moootools,因为它使用的moootools版本比我需要的要旧。我到处都在搜索,但似乎找不到允许我禁用它的文件或函数。任何帮助都将不胜感激。

    5 回复  |  直到 13 年前
        1
  •  1
  •   AHeavyObject    13 年前

    至少在virtuemart 1.5中,转到 组件/com\virtuemart/themes/yourtheme/theme.php 找到第37行,有一个函数:

    function vmTheme() {
        parent::vmTemplate();
        vmCommonHTML::loadMooTools();
    }
    

    只是评论

    vmCommonHTML::loadMooTools();
    
        2
  •  0
  •   zombat    14 年前

    在整个项目中,对它的唯一引用是mod eu virtuemart_currencys.xml。我对Joomla并不完全熟悉,但这看起来像是特定货币模块的安装程序文件。

    我建议删除该模块,或者更新对该XML文件中使用的mootols库的引用(当前可用版本的第30行,在 modules/mod_virtuemart_currencies_1.14.j15/mod_virtuemart_currencies.xml )。

        3
  •  0
  •   VirtuosiMedia    14 年前

    我能解决我的问题。我的自定义模块使用jhtml::script()加载我的javascript文件。这个特殊的函数有第三个参数,默认为true,它将自动加载moootools。您可以在这里看到文档: http://docs.joomla.org/Adding_JavaScript

        4
  •  0
  •   Garrett Bluma    14 年前

    如果不这样做,请将其放入模板中,它将删除Joomla尝试使用的任何默认脚本。显然,这可能会消除virtuemart正常工作所必需的东西,但也可能解决您的问题。

    <?php
    $user =& JFactory::getUser();
    if ($user->get('guest') == 1) {
        $headers = $this->getHeadData();
        $headers['scripts'] = array();
        $this->setHeadData($headers); 
    }
    ?>
    
        5
  •  0
  •   user604716    13 年前

    我为前端和后端创建了一个自定义组件,我无法(就我而言)禁用moootools。我试图取消设置头数组和所有这些,但它没有工作! 对于那些组件是常规文章的常规页面来说,它工作得很好,但对于我的自定义组件来说,则不是这样。

    我在模板中使用了jhtml::script()函数,在阅读了其中一条注释后,我尝试向函数中添加第二个参数(false),但效果良好!

    谢谢您!!!!

    您知道为什么$document变量的脚本数组中的mootools不适用于自定义组件吗?