我正在创建一个用于显示VirtueMart类别的自定义模块,但需要禁用VirtueMart来加载MooTools,因为它使用的MooTools比我需要的版本更旧。我到处搜索,但我似乎无法找到允许我禁用它的文件或功能。任何帮助将不胜感激。
答案 0 :(得分:1)
至少在virtmart 1.5上去 组件/ com_virtuemart /主题/ YOURTHEME / theme.php 找到约37行,有一个函数:
function vmTheme() {
parent::vmTemplate();
vmCommonHTML::loadMooTools();
}
只需评论
vmCommonHTML::loadMooTools();
答案 1 :(得分:0)
整个项目中对它的唯一引用是在mod_virtuemart_currencies.xml中。我不是100%熟悉Joomla,但这看起来像是特定货币模块的安装程序文件。
我建议删除该模块,或更新对该XML文件中使用的MooTools库的引用(当前可用版本中的第30行,modules/mod_virtuemart_currencies_1.14.j15/mod_virtuemart_currencies.xml
内)。
答案 2 :(得分:0)
我能够解决我的问题。我的自定义模块使用JHTML :: script()来加载我的JavaScript文件。该特定函数有一个默认为true的第三个参数,它将自动加载MooTools。您可以在此处查看文档:{{3}}
答案 3 :(得分:0)
如果没有这样做,请将其放在模板中,它将删除Joomla尝试使用的任何默认脚本。显然,这可能会删除Virtuemart正常工作所必需的东西,但它也可能解决您的问题。
<?php
$user =& JFactory::getUser();
if ($user->get('guest') == 1) {
$headers = $this->getHeadData();
$headers['scripts'] = array();
$this->setHeadData($headers);
}
?>
答案 4 :(得分:0)
我为前端和后端创建了一个自定义组件,我不能(对于我的生活)禁用mootools。我尝试取消设置头数组和所有这些,但它没有用! 它适用于组件是常规文章的常规页面,但不适用于我的自定义组件。
我在我的模板中使用了JHTML :: script()函数,在阅读了其中一条评论之后,我尝试在函数中添加第二个参数(FALSE)并且它有效!
谢谢!!!
为什么从$ document变量的_scripts数组中取消设置mootools的想法不适用于自定义组件?