Reemake Digital Agency · Диагностика Joomla

Ошибка com_ajax в Joomla 6
при работе с legacy-модулями

Мы работаем на Joomla с 2009 года и знаем: после обновления ядра старые модули ломают com_ajax — AJAX-запросы падают с 500. Разбираем причины и способы исправления без отката ядра — классика «проблема/решение».

Классика: проблема и решение

Что не работает в Joomla 6

JFactory и JRequest

Удалены в Joomla 4+. Legacy-модуль падает при первом же AJAX-запросе.

Factory::getApplication()

Современная замена. Работает через DI-контейнер.

JResponse::setBody

Устаревший способ отдачи ответа. В Joomla 6 не работает вообще.

echo json_encode()

Современный способ. Отдаём JSON и закрываем приложение.

Прямой $_POST

Ломает валидацию. com_ajax ожидает правильно оформленный запрос.

getInput()

Стандартный способ чтения параметров. С фильтрацией и валидацией.

Старые namespace

Не подгружаются автолоадером. Класс не находится.

PSR-4 namespace

Современный стандарт. Работает с автолоадером Joomla 6.

Как исправить

Пошаговое решение

1. Error Reporting = Maximum, воспроизвести ошибку.

2. Заменить JFactory на Factory::getApplication().

3. Заменить JResponse::setBody на echo json_encode(...).

4. Переписать модуль с namespace — или заменить на современный аналог.

5. Проверить на всех AJAX-запросах. Никаких ошибок 500 быть не должно.

Вопросы и ответы

Гео и техника

Работаете только в Перми?
Офис в Перми, работаем по всей России и краю: Березники, Соликамск, Чайковский, Кунгур, Краснокамск, Лысьва. Диагностику делаем удалённо.

Можно откатить ядро?
Это временно и небезопасно. Откат не решает проблему — при следующем обновлении всё вернётся. Правильное решение — адаптировать модуль под Joomla 6.

Сколько занимает адаптация?
От 1 до 3 дней — в зависимости от сложности модуля. Простые правки (замена JFactory, JResponse) — 1 день. Полная переработка с namespace — 3 дня.

Что если модуль не поддерживается?
Заменяем на современный аналог — например, Reemake AJAX Content. Функционал не потеряется, а часто становится лучше.

Сломались AJAX-модули?

Проведём диагностику, адаптируем под Joomla 6. Бесплатный аудит — оценим проект без обязательств. Пришлём расчёт в течение 1 рабочего дня.

Начнём диагностику →
8 (950) 442-49-00 reemake@inbox.ru Max Messenger Max

с 8:00 до 20:00 (МСК)

г. Пермь