0

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

4

5 回答 5

1

至少在 1.5 到 components/com_virtuemart/themes/YOURTHEME/theme.php 找到第 37 行左右,有一个函数:

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

只是评论

vmCommonHTML::loadMooTools();
于 2010-11-24T11:57:36.000 回答
0

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

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

于 2010-01-18T22:34:51.757 回答
0

我能够解决我的问题。我的自定义模块使用 JHTML::script() 来加载我的 JavaScript 文件。该特定函数具有默认为 true 的第三个参数,它将自动加载 MooTools。您可以在此处查看文档:http: //docs.joomla.org/Adding_JavaScript

于 2010-01-19T00:07:38.690 回答
0

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

<?php
$user =& JFactory::getUser();
if ($user->get('guest') == 1) {
    $headers = $this->getHeadData();
    $headers['scripts'] = array();
    $this->setHeadData($headers); 
}
?>
于 2010-01-27T05:10:14.240 回答
0

我为前端和后端创建了一个自定义组件,但我无法(终生)禁用 mootools。我尝试取消设置 headers 数组和所有这些,但它没有工作!它适用于组件是常规文章的常规页面,但不适用于我的自定义组件。

我在我的模板中使用了 JHTML::script() 函数,在阅读了此处的其中一条评论后,我尝试向该函数添加第二个参数(FALSE)并且它起作用了!

谢谢!!!

任何想法为什么从 $document 变量的 _scripts 数组中取消设置 mootools 不适用于自定义组件?

于 2011-02-05T20:42:10.540 回答