Как сисадмин тестировал JComments для Joomla 6

Сразу важное уточнение: я не программист. Совсем.

Я системный администратор. Уже в далёком прошлом. Когда-то я ставил сервера, сети, домены, умел разбираться в чужих конфигурациях, искать, где именно что-то перестало работать. Но самостоятельно читать PHP-код, находить в нём причину ошибки и предлагать исправление я не умею.

Именно поэтому история с JComments для Joomla 6 получилась для меня интересной.

Мне понадобились комментарии на сайте. Для Joomla есть известный компонент JComments. Разработчик exstreme уже выпустил бета-версию с адаптацией к Joomla 6. Я поставил её на локальный сайт и начал проверять обычные вещи: отправляются ли комментарии, работает ли модерация.

Среда была такой:

  • Joomla 6.1.2;
  • PHP 8.4;
  • MySQL 8.0;
  • Open Server Panel 6.5.1.

И почти сразу выяснилось, что базовые сценарии ломаются.

Что делал я, а что — ИИ

Моя часть работы была не в написании кода.

Я воспроизводил ошибки на реальном сайте, описывал симптомы, показывал сообщения Joomla, проверял предлагаемые изменения и сообщал, что именно изменилось после очередной правки. Без такого тестирования теория остаётся теорией: можно написать красивое объяснение, но не заметить, что следующая кнопка всё ещё падает.

Сначала мне помогала DeepSeek. Она разбирала первые ошибки, искала причины в коде и предлагала исправления. Вместе мы нашли три проблемы, блокировавшие нормальную работу компонента.

Позже DeepSeek упёрлась в свой потолок: не смогла довести до результата упаковку собственного установщика и задачу с интеграцией комментариев в динамический контент сайта. Тогда я продолжил работу с ChatGPT. (Благо, мне удалось приобрести подписку). Она помогла проверить структуру пакета, аккуратно собрать рабочий установщик, оформить метаданные, опубликовать временный релиз и разобраться с частью интеграционных проблем.

То есть нет, я не буду рассказывать, будто сам написал патчи. Я их не написал. Но я поставил задачу, предоставил реальную среду, последовательно проверял решения и не бросил всё после десятой неудачной попытки.

Ошибка при сохранении статьи

При попытке сохранить любую статью Joomla сообщала:

Unknown column access in field list

Причина оказалась в плагине Smart Search для JComments. Он пытался работать с полем access в таблице комментариев. Такого поля там нет: оно относится к объектам комментариев, а не к самим комментариям.

Для исправления в плагине были переопределены четыре обработчика доступа, которые в этой ситуации работать не должны.

После этого статьи снова начали сохраняться.

Ошибка ContentHelper после сохранения

Сразу после первой правки проявилась следующая проблема:

Class Joomla\Component\Jcomments\Site\Helper\ContentHelper not found

Тот же плагин Smart Search вызывал класс, которого в текущей бета-версии нет.

Пока полноценная реализация этого класса не появится в официальном проекте, обработка после сохранения отключена. На публикацию и отображение комментариев это не влияет. Временно отключается только автоматическая индексация комментариев для Smart Search.

Ошибка при публикации комментария

Комментарий успешно отправлялся и появлялся в списке модерации. Но при нажатии «Опубликовать» Joomla отвечала:

MVC Factory not set in Joomla\CMS\MVC\Model\BaseDatabaseModel

Причина была в устаревшем способе получения таблицы комментариев в административной модели. Для Joomla 6 он требовал фабрику MVC, которой компонент в этой точке не получал.

Исправление свелось к использованию стандартного механизма Joomla для получения таблицы комментариев. После этого комментарии начали нормально проходить весь путь: отправка, модерация, публикация, отображение на сайте.

Временная сборка

Пока официальные исправления не появились, я опубликовал временную неофициальную patch-сборку:

JComments 5.0.0 — BSL Joomla 6 Patch Build

Это не новый компонент и не попытка сделать «свой JComments». Исходный проект, первоначальная адаптация к Joomla 6 и основная работа принадлежат текущему разработчику JCommentsexstreme.

В установщик вошли проверенные исправления. Сервер автоматических обновлений намеренно отключён: я не хочу, чтобы Joomla незаметно заменила исправленные файлы на другую версию компонента.

Сборка имеет статус предварительного релиза. Когда официальная версия JComments устранит эти проблемы, временный релиз будет заархивирован, а использовать следует официальный пакет.

Зачем я вообще об этом пишу

Не для того, чтобы изобразить себя разработчиком.

Скорее наоборот: я хочу зафиксировать любопытный факт. Человек, который не умеет программировать, всё равно может участвовать в технической работе осмысленно. Он может заметить проблему, не отмахнуться от неё, точно описать условия, воспроизвести ошибку, проверить исправление и довести результат до реального сайта.

А ИИ в такой работе может быть не волшебной кнопкой, а очень сильным инструментом. DeepSeek помог мне с первоначальным анализом трёх ошибок. ChatGPT помог продолжить работу там, где предыдущий инструмент уже не справлялся: с установщиком, проверкой сборки и публикацией.

Каждый делал свою часть. И в итоге комментарии на сайте заработали.

Добавить комментарий