Модуль случайного анекдота на AJAX для DLE

Как устроена подгрузка анекдота без перезагрузки страницы в DLE: выбор модуля, настройка источника и проверка работы AJAX-запроса.

Схема работы модуля случайного анекдота на AJAX: условные блоки страницы, запроса и источника анекдотов на тёплом светлом фоне

Назначение модуля

Модуль случайного анекдота на AJAX предназначен для сайтов на DataLife Engine, где владелец хочет показывать посетителю короткую шутку в боковой панели или отдельном блоке страницы. Ключевое слово здесь — AJAX: запрос к серверу выполняется в фоне, и блок на странице обновляется без полной перезагрузки. Читатель нажимает кнопку «ещё анекдот» и получает новый текст, не теряя место в ленте и не дожидаясь загрузки остальных элементов сайта.

Что нужно проверить перед установкой

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

Типовая схема работы

Обычно модуль состоит из трёх частей. PHP-скрипт в каталоге модулей отвечает на запрос и возвращает случайный анекдот в виде текста или JSON. JavaScript-файл на клиенте отправляет этот запрос при клике пользователя и подставляет ответ в заранее размеченный блок. Шаблонный файл содержит контейнер с идентификатором, куда вставляется результат. Если любой из трёх элементов отсутствует или не совпадает по путям, блок останется пустым.

Настройка источника анекдотов

Самый простой вариант — хранить анекдоты в отдельной таблице MySQL и выбирать запись случайным образом через SQL-функцию. Более лёгкий вариант — текстовый файл, где каждая строка представляет собой один анекдот; скрипт читает файл и берёт строку с случайным номером. Оба подхода не требуют внешних подключений и работают даже на скромном хостинге. Если анекдоты берутся из внешнего сервиса, убедитесь, что условия использования этого сервиса разрешают перепечатку на вашем сайте.

Подключение к шаблону

В шаблонной разметке размещают блок с определённым классом или id, например div с именем joke-box. Внутри него обычно находится кнопка и пустой контейнер для текста. Скрипт модуля инициализируется при загрузке страницы и привязывает обработчик к кнопке. Важно, чтобы JavaScript-файл подключался после загрузки DOM, иначе обработчик не найдёт нужный элемент.

Проверка результата

После установки откройте страницу в браузере и нажмите кнопку. Если анекдот появляется, посмотрите, как ведёт себя модуль при повторных кликах: не дублируется ли запрос, не зависает ли блок на время ответа сервера. Откройте инструменты разработчика и убедитесь, что запрос уходит на правильный адрес и возвращает данные в ожидаемом формате. Проверьте также, что блок корректно отображается на мобильных экранах, если шаблон адаптивный.