Благодарности за новости (Thanks News by SX2)

40 26 января 2026
Проверено на DLE: 19.x
Версия PHP: 8.х
Стоимость: бесплатно
Исходный код: открыт
Последнее обновление: ---

Модуль Thanks News by SX2 для DLE позволяет организовать систему благодарностей за новости на сайте. Все данные о благодарностях хранятся в JSON-файлах, что позволяет работать без нагрузки на базу данных. Используется AJAX, поэтому нажатие кнопки «Благодарю» и отображение списка поблагодаривших происходит без перезагрузки страницы.


Основные возможности

  • Кнопка «Благодарю» под каждой новостью с мгновенным AJAX-откликом.
  • Количество благодарностей отображается сразу.
  • Исключены повторные благодарности от одного пользователя.
  • Автор новости не может поблагодарить сам себя, кнопка скрыта.
  • Все пользователи и гости могут благодарить; для гостей создаётся уникальный ник в списке.
  • Статистика в профиле: количество полученных и сказанных благодарностей.
  • Цвет ников в списке зависит от группы пользователя.

Преимущества модуля

  • Работа без базы данных — JSON-хранилище.
  • Мгновенный отклик благодаря AJAX.
  • Минимальная нагрузка на сервер.
  • Совместимость с последними версиями DLE.

Технические детали

  • Данные по каждой новости хранятся в ENGINE_DIR/cache/thanks/post_{news_id}.json.
  • Все операции по благодарностям проходят через AJAX-запросы.
  • Логирование ошибок при удалении/записи JSON через error_log.
  • Лёгкая вставка в шаблон: одна строка include отдаёт HTML-блок с кнопкой и списком.

Минусы и ограничения

  • Особенности хранения в JSON: формат удобен и быстрый, но имеет ограничения по масштабируемости.
  • Модуль хранит последних 500 пользователей, поблагодаривших новость (лимит настраивается в конфигурации).
  • При превышении лимита происходит перезапись самого старого значения — старые благодарности удаляются.
  • При очень высокой посещаемости (тысячи действий в минуту) использование JSON может стать узким местом.
  • Для крупных проектов рекомендуется использовать MySQL или SQLite для надёжного хранения и масштабирования данных.

Заключение

Модуль Thanks News by SX2 представляет собой лёгкую (Light) версию системы благодарностей, ориентированную на простоту, быструю установку и минимальную нагрузку на сервер. Хранение данных в JSON отлично подходит для небольших и средних проектов, где важны скорость и отсутствие лишней сложности.

Для крупных и высоконагруженных сайтов, а также при необходимости расширенного функционала (глубокая статистика, аналитика, гибкие лимиты, масштабирование), рекомендуется реализовывать полноценную систему на базе данных с использованием кеширования и оптимизированной архитектуры.

Установите плагин install.zip.


Для вывода блока благодарностей в полной новости подключите модуль в файл fullstory.tpl:

Вариант 1 | если благодарности включены для всех новостей

{include file="engine/modules/thanks.php?news_id={news-id}&autor={login}&allow=1}

Вариант 2 | если благодарности необходимо включать индивидуально

{include file="engine/modules/thanks.php?news_id={news-id}&autor={login}&allow=[xfgiven_tnx]1[/xfgiven_tnx][xfnotgiven_tnx]0[/xfnotgiven_tnx]"}

Также необходимо создать дополнительное поле с именем: tnx с типом: Переключатель «Да / Нет»


Для вывода статистики в профиле пользователя вставьте:

Получил спасибо: {thanks_received}
Сказал спасибо: {thanks_given}

При необходимости можно изменить лимит хранения записей. По умолчанию сохраняются данные о последних 500 посетителях. Для изменения откройте ajax-файл модуля и укажите нужное значение:

// Максимальное количество благодарностей для хранения
$MAX_THANKS = 500;
Изменений не было!

Файл: ThanksNews.zip

Добавлен: 26 января 2026, 19:49

Размер: 16.44 Kb

Скачиваний: 13

С уважением, SX2
👀 Кто читал
Онлайн / История (10 дней)
🟢 1 🕘 7
🟢 Online (1)
🕘 История (7)
❓ Unknown Desktop
🙏 Благодарностей 1
Привет! Похоже, Вы ещё не вошли на сайт.
Чтобы получить полный доступ, зарегистрируйтесь или войдите под своим именем.