升级到J3后,找不到JHtmlBehavior :: mootools


9

我收到500错误JHtmlBehavior::mootools not found。我知道这已在J3中删除,但我的问题是试图找出问题所在。

我怀疑这是某种扩展,但我想我已经全部更新了。明显不是。我在php日志或开发人员工具控制台中看不到任何内容来指示问题所在。我什至grep代表JHtmlBehavior而一无所获。

关于如何调试的任何提示?

Answers:


9

在我自己的自定义组件中发现了问题...呃。我找不到了,因为我一直在寻找有问题的代码JHtmlBehavior::mootools

但是令人讨厌的代码是这样的:

JHTML::_('behavior.mootools');

将其更改为此可解决问题:

JHtml::_('behavior.framework');

3

尽管在Joomla 3中不推荐使用MooTools,但仍可以使用(但在将来的版本中可能会删除它)。

您可以通过添加来加载框架

JHtml::_('behavior.framework');

(或者如果您同时需要Core和More库):

JHtml::_('behavior.framework', true);

到模板的index.php文件。

除非您使用Mootools代码找到文件/扩展名,否则这至少是一个临时解决方案。找到罪魁祸首可能很困难,但是我建议您从浏览器开发人员工具(F12在大多数浏览器中)开始,并查找JavaScript错误,它可能会给您提示。


谢谢,但我都尝试了两次,仍然收到相同的错误。开发人员工具(或Firebug)除500个内部服务器错误外没有告诉我。还有其他想法吗?
汤姆(Tom)

您确定在中正确添加了代码JOOMLAROOT/templates/YOURTEMPLATE/index.php吗?您可以在之后直接添加它defined('_JEXEC') or die;。通过键入window.MooToolsFirebug 来检查MooTools是否已加载,它应该返回Object { version: "1.4.5", build: "74e34796f5f76640cdb98853004650aea1499d69" }或类似。
johanpw 2014年

添加这些JHtml::调用不会停止错误,这是某个站点上的PHP中的无效调用导致的。
克雷格2014年

2

这是一个PHP错误,导致Joomla抛出错误,因此,不是Javascript错误,也不是通过添加更多PHP来解决的问题。如您所怀疑,您需要找到错误的PHP调用的源。

要做的第一件事是将错误报告显示为“开发”,并看到该错误信息会为您提供任何新信息,如果没有新信息可以帮助您查找错误原因,那么它将成为手动切片和切块的方法。

尝试短暂地交换到内置模板,然后查看问题是否消失了-如果是,则是模板或模块不再被调用,因为它的分配位置在交换到的默认模板中不存在。如果不是模板,则可以快速找到模块。

最后,如果这没有帮助,请使用50%方法快速缩小是哪组组件,模块或插件是问题的根源。


2

以下是一些步骤,以查找代码的来源:

  1. 最好的方法是下载网站的完整副本,并在其目录内进行OS系统搜索JHTML :: _('behavior.mootools');。。通常,您的计算机会返回一个包含所有包含此特定字符串的文件的列表。

  2. 如果第一步不可行,或者由于某种原因而无法获得任何结果,则应该开始禁用扩展。

    一个。首先,将模板切换到核心的Joomla 3 protostar模板。如果问题最有可能解决,则是包含已弃用代码的模板。

    b。然后,您可以开始关闭模块和插件。

    C。最后,查看问题是否仅出现在第三方组件的特定页面上。

Joomla文档上找到有关如何在Joomla上加载Javascript框架的更多信息。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.