Благодарности за новости (Thanks News by SX2)
|
Проверено на 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 |
Чтобы получить полный доступ, зарегистрируйтесь или войдите под своим именем.

