Оновлення до J3 дає JHtmlBehavior :: mootools не знайдено


9

Я отримую помилку 500 JHtmlBehavior::mootools not found. Я знаю, що це було видалено в J3, але моя проблема намагається з'ясувати, де ця проблема.

Я підозрюю, що це якесь розширення, але я думаю, що я їх все оновив. Очевидно, що ні. Я нічого не бачу в своїх журналах php або консолі інструментів для розробників, щоб вказати, де може бути проблема. Я навіть вітаюся за 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.MooToolsFirebug, він повинен повернутися Object { version: "1.4.5", build: "74e34796f5f76640cdb98853004650aea1499d69" }чи подібне.
johanpw

Додавання цих JHtml::дзвінків не зупинить помилку, яка є результатом недійсного виклику в PHP десь на сайті.
Крейг

2

Це помилка PHP, що призводить до того, що Joomla видав помилку, тож не помилка Javascript і не те, що потрібно виправити, додавши ще PHP. Як ви підозрювали, вам потрібно знайти джерело помилкового виклику PHP.

Перше, що потрібно зробити, - це звернутись до свого повідомлення про помилки до "Розвитку" і побачити, що дає вам будь-яку нову інформацію, якщо немає нової інформації, яка допоможе вам відстежувати джерело помилки, то це стає ручним підходом до скибочок та кісток.

Спробуйте на короткий час перейти на вбудований шаблон і побачити, чи проблема не зникає - якщо все-таки це або шаблон, або модуль, який більше не викликається, тому що призначене положення не існує у шаблоні за замовчуванням, на який ви помінялися. Якщо це не шаблон, ви можете швидко відслідковувати модулі.

Нарешті, якщо це не допомагає, скористайтеся методом 50%, щоб швидко звузити, яка група компонентів, модулів або плагінів є джерелом проблеми.


2

Ось кілька кроків, щоб знайти, звідки походить код:

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

  2. Якщо перший крок неможливий або ви не можете отримати жодних результатів з будь-якої причини, тоді слід почати вимикати розширення.

    а. Спочатку переключіть шаблон - на основний шаблон protostar Joomla 3. Якщо проблема скасовується, швидше за все, саме ваш шаблон містить застарілий код.

    б. Потім ви можете почати вимикати модулі та плагіни.

    c. Нарешті, подивіться, чи видається проблема лише на певних сторінках сторонніх компонентів.

Дізнайтеся більше інформації про те, як завантажити рамки Javascript на Joomla на Joomla Documentation

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.