Обновление до J3 дает JHtmlBehavior :: mootools не найден


9

Я получаю ошибку 500 с JHtmlBehavior::mootools not found. Я знаю, что это было удалено в J3, но моя проблема - попытаться выяснить, где эта проблема.

Я подозреваю, что это какое-то расширение, но я думаю, что я обновил их все. Очевидно нет. Я ничего не вижу в своих журналах php или консоли инструментов разработчика, чтобы указать, где может быть проблема. Я даже grep для JHtmlBehavior и ничего не придумаю.

Любые советы о том, как я могу отладить это?

Ответы:


9

Нашел проблему в моем собственном пользовательском компоненте ... тьфу. Я не смог найти обидный код, потому что искал JHtmlBehavior::mootools.

Но обидный код был таким:

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

Изменение этого к решению проблемы:

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

3

Хотя MooTools устарела в Joomla 3, она все еще доступна (но может быть удалена в будущих версиях).

Вы можете загрузить структуру, добавив

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

(или если вам нужны библиотеки Core и More):

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

в index.phpфайл вашего шаблона .

По крайней мере, это будет временное исправление, пока вы не найдете файл / расширение с помощью кода Mootools. Найти виновника может быть сложно, но я предлагаю вам начать с браузеров Инструменты разработчика ( F12в большинстве браузеров) и искать ошибки JavaScript, это может дать вам подсказку.


Спасибо, но я попробовал оба и все еще получаю ту же ошибку. Инструменты разработчика (или Firebug) не говорят мне ничего, кроме 500 внутренних ошибок сервера. Есть еще идеи?
Том

Вы уверены, что правильно добавили код JOOMLAROOT/templates/YOURTEMPLATE/index.php? Вы можете добавить его сразу после defined('_JEXEC') or die;. Проверьте, был ли загружен MooTools, набрав window.MooToolsв Firebug, он должен вернуться Object { version: "1.4.5", build: "74e34796f5f76640cdb98853004650aea1499d69" }или аналогичный.
Johanpw

Добавление этих JHtml::вызовов не остановит ошибку, которая является результатом неправильного вызова в PHP где-то на сайте.
Крейг

2

Это ошибка PHP, приводящая к тому, что Joomla выдает ошибку, то есть не ошибку Javascript и не то, что нужно исправить, добавив больше PHP. Как вы и подозревали, вам нужно найти источник ошибочного вызова PHP.

Первое, что нужно сделать, - включить отчет об ошибках в «Разработка» и убедиться, что он дает вам любую новую информацию. Если нет новой информации, которая поможет вам отследить источник ошибки, она становится методом ручного среза и кости.

Попробуйте ненадолго перейти к встроенному шаблону и посмотрите, исчезнет ли проблема - если это произойдет, то это будет либо шаблон, либо модуль, который больше не вызывается, потому что его назначенная позиция не существует в шаблоне по умолчанию, к которому вы менялись. Если это не шаблон, вы можете отследить модули довольно быстро.

Наконец, если это не помогает, используйте метод 50%, чтобы быстро определить, какая группа компонентов, модулей или плагинов является источником проблемы.


2

Вот несколько шагов, чтобы узнать, откуда исходит код:

  1. Что ж, лучший способ - это загрузить полную копию веб-сайта и выполнить поиск системы ОС внутри своего каталога для поиска JHTML :: _ ('поведение.mootools'); , Обычно ваш компьютер возвращает список со всеми файлами, которые содержат эту конкретную строку.

  2. Если первый шаг невозможен или вы не можете получить результаты по какой-либо причине, то вам следует начать отключать расширения.

    а. Сначала переключите шаблон - на основной шаблон Joomla 3 protostar. Если проблема, скорее всего, исчезнет, ​​то ваш шаблон содержит устаревший код.

    б. Затем вы можете начать отключать модули и плагины.

    с. Наконец, проверьте, не возникает ли проблема только на определенных страницах сторонних компонентов.

Найдите больше информации о том, как загрузить Javascript Frameworks на Joomla на Joomla Документация

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.