Плагин UserNewNotify v2.2.8 для CMF Cotonti

Расширение уведомляет администратора о регистрации новых пользователей на сайте через системную электронную почту. Подробная статистика регистраций с фильтром.

Плагин User New Notify для CMF Cotonti Siena

Изображение Изображение Изображение Изображение Изображение

Расширение уведомляет администратора о регистрации новых пользователей на сайте через системную электронную почту. Подробная статистика регистраций с фильтром.

User New Notify — это плагин для системы управления контентом CMF Cotonti Siena, предназначенный для уведомления администраторов о новых регистрациях пользователей через электронную почту и предоставления интерфейса в административной панели для просмотра и фильтрации логов регистраций. Плагин поддерживает уведомления в текстовом и HTML-форматах, логирование в базу данных и отображение детализированной информации о пользователях, включая устройство, браузер и страну, определённую по IP.

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

Плагин позволяет администраторам получать уведомления по email при регистрации нового пользователя и при подтверждении его email-адреса. Уведомления доступны в двух форматах: текстовом и HTML с современным дизайном, включающим стили и таблицы для удобства восприятия. Сообщения различаются в зависимости от этапа регистрации: при регистрации отправляется письмо с текстом «Здравствуйте, Administrator! Пользователь зарегистрировался, но еще не подтвердил свою почту», а после подтверждения email — «Здравствуйте, Administrator! Пользователь успешно зарегистрировался и подтвердил свою почту!!!». Каждое уведомление содержит имя пользователя, email, дату регистрации, IP-адрес, страну, устройство, браузер и кликабельную ссылку на профиль пользователя.

События регистрации и подтверждения email логируются в базу данных в таблицу cot_usrnewnotify_logs, где для каждого события создаётся отдельная запись. В административной панели доступен интерфейс для просмотра логов с фильтрацией по имени пользователя, email, IP-адресу, стране, статусу и диапазону дат, а также с поддержкой пагинации для удобной навигации.

Плагин поддерживает отправку уведомлений на несколько email-адресов администраторов, указанных через запятую, и предоставляет гибкие настройки через админ-панель Cotonti. Реализована многоязычная поддержка для русского, английского и украинского языков. Безопасность обеспечивается экранированием данных и валидацией, что минимизирует риски уязвимостей.

Требования

Для работы плагина требуется CMF Cotonti Siena версии 0.9.26 или выше, PHP версии 8.4 или выше и MySQL версии 8.0 или выше. Необходимы следующие права доступа: гости — только чтение (R), пользователи — чтение и запись (RW), блокировка — 12345A для гостей и членов. Для определения страны по IP-адресу используется бесплатный внешний API ip-api.com с ограничением до 45 запросов в минуту.

Установка

Чтобы установить плагин, скачайте его последнюю версию из репозитория GitHub. Распакуйте архив в папку plugins/ вашего сайта на Cotonti. Затем перейдите в административную панель в раздел Администрирование → Расширения → Установить плагин, найдите User New Notify и нажмите Установить. Плагин автоматически создаст таблицу cot_usrnewnotify_logs в базе данных.

Настройка

Настройка плагина выполняется через административную панель в разделе Администрирование → Расширения → User New Notify → Настройки. Доступны следующие параметры: включение или отключение уведомлений по email (notify_enabled, 0 — отключено, 1 — включено), указание email-адресов администраторов через запятую (notify_email, например, [email protected],[email protected]), выбор формата уведомлений (notify_format, текстовый — text или HTML — html), а также включение или отключение логирования в базу данных (notify_log, 0 — отключено, 1 — включено).

Использование

Уведомления

При регистрации нового пользователя через хук users.register.add.done отправляется email с текстом: «Здравствуйте, Administrator! Пользователь зарегистрировался, но еще не подтвердил регистрацию через свою почту» (если настройка regnoactivation равна 0). Событие записывается в таблицу cot_usrnewnotify_logs с статусом error и сообщением Pending email validation. После подтверждения email через хук users.register.validate.done отправляется уведомление: «Здравствуйте, Administrator! Пользователь успешно зарегистрировался и подтвердил свою почту!». В базу данных добавляется запись с статусом success и сообщением Notification sent successfully. Уведомления включают имя пользователя, email, дату регистрации, IP-адрес, страну, устройство, браузер и ссылку на профиль, например, https://example.com/ru/users/1687?m=details.

Просмотр логов

В разделе Администрирование → Расширения → User New Notify доступен интерфейс для просмотра логов. Логи содержат идентификатор записи, имя пользователя, email, IP-адрес, страну, устройство (Mobile, Tablet, Desktop), браузер (Chrome, Firefox, Safari и другие), дату регистрации, статус отправки (успех или ошибка), сообщение (например, «Pending email validation» или «Notification sent successfully») и ссылку на профиль пользователя. Поддерживается фильтрация по имени, email, IP, стране, статусу и диапазону дат, а также пагинация для удобного просмотра.

 

Схема структуры файлов плагина User New Notify

 

plugins/usrnewnotify/
├── usrnewnotify.setup.php
├── usrnewnotify.users.register.add.done.php
├── usrnewnotify.users.register.validate.done.php
├── usrnewnotify.tools.php
├── tpl/
│   └── usrnewnotify.tools.tpl
├── inc/
│   └── usrnewnotify.functions.php
├── lang/
│   ├── usrnewnotify.ru.lang.php
│   ├── usrnewnotify.en.lang.php
│   └── usrnewnotify.ua.lang.php
├── setup/
│   └── usrnewnotify.install.sql
└── └── usrnewnotify.uninstall.sql

 

Список файлов плагина с пояснениями

  1. usrnewnotify.setup.php Этот файл содержит метаданные и конфигурацию плагина, необходимые для его интеграции с системой Cotonti Siena. Он определяет основные параметры плагина, такие как название, версию (2.2.8), зависимости, хуки и настройки, которые отображаются в административной панели. Также в этом файле указаны файлы для установки и удаления, а также информация о лицензии (BSD) и авторе (webitproff). Cotonti использует этот файл для регистрации плагина в системе и корректной обработки его установки.
  2. usrnewnotify.users.register.add.done.php Файл отвечает за обработку события регистрации нового пользователя. Он срабатывает через хук users.register.add.done, который активируется после выполнения функции cot_add_user в users.register.php. Логика файла включает отправку email-уведомления администратору с текстом «Здравствуйте, Administrator! Пользователь зарегистрировался, но еще не подтвердил свою почту» (если настройка regnoactivation равна 0) и запись события в таблицу cot_usrnewnotify_logs с полями log_status='error' и log_message='Pending email validation'. Уведомление содержит имя пользователя, email, дату, IP, страну, устройство, браузер и ссылку на профиль.
  3. usrnewnotify.users.register.validate.done.php Этот файл обрабатывает событие подтверждения email-адреса пользователем. Он активируется через хук users.register.validate.done после клика по ссылке подтверждения в users.register.php. Файл отправляет email-уведомление администратору с текстом «Здравствуйте, Administrator! Пользователь успешно зарегистрировался и подтвердил свою почту!» и записывает событие в таблицу cot_usrnewnotify_logs с полями log_status='success' и log_message='Notification sent successfully'. Уведомление включает те же данные, что и при регистрации: имя, email, дату, IP, страну, устройство, браузер и ссылку на профиль.
  4. usrnewnotify.tools.php Файл реализует функционал интерфейса административной панели для просмотра и фильтрации логов регистраций. Он обрабатывает запросы на фильтрацию по имени пользователя, email, IP-адресу, стране, статусу и диапазону дат, формирует SQL-запросы для выборки данных из таблицы cot_usrnewnotify_logs и подготавливает данные для отображения в шаблоне. Также файл управляет пагинацией и выводом сообщений об ошибках или отсутствии логов. Этот файл обеспечивает корректную работу раздела Администрирование → Расширения → User New Notify.
  5. usrnewnotify.tools.tpl Это шаблон интерфейса административной панели, который определяет визуальное отображение страницы просмотра логов. Он содержит HTML-разметку для формы фильтрации (поля для ввода имени, email, IP, страны, статуса и дат), таблицы логов (с колонками для ID, имени, email, IP, страны, устройства, браузера, даты, статуса, сообщения и ссылки на профиль) и элементов пагинации. Шаблон использует теги Cotonti для динамической вставки данных, подготовленных в usrnewnotify.tools.php.
  6. inc/usrnewnotify.functions.php Файл содержит вспомогательные функции плагина, которые используются для обработки данных. Он включает функции для определения типа устройства (Mobile, Tablet, Desktop) и браузера (Chrome, Firefox, Safari и др.) на основе строки User-Agent, а также для определения страны по IP-адресу с использованием API ip-api.com. Кроме того, файл реализует функции для логирования событий в таблицу cot_usrnewnotify_logs, обеспечивая единообразную обработку данных для всех частей плагина.
  7. lang/usrnewnotify.ru.lang.php Этот файл содержит русскую локализацию плагина, включая переводы интерфейса административной панели, текстов уведомлений и шаблонов писем. Например, он определяет строки вроде L['Success'] = 'Успех', L['Error'] = 'Ошибка', а также полный текст писем, отправляемых при регистрации и подтверждении email. Файл используется для отображения интерфейса и сообщений на русском языке.
  8. lang/usrnewnotify.en.lang.php Файл отвечает за английскую локализацию плагина. Он содержит переводы всех строк интерфейса, уведомлений и шаблонов писем на английский язык, таких как L['Success'] = 'Success', L['Error'] = 'Error'. Это позволяет использовать плагин на сайтах с англоязычным интерфейсом, обеспечивая корректное отображение текстов и писем.
  9. lang/usrnewnotify.ua.lang.php Этот файл предоставляет украинскую локализацию плагина. Он включает переводы интерфейса, уведомлений и шаблонов писем на украинский язык, например, L['Success'] = 'Успіх', L['Error'] = 'Помилка'. Файл необходим для сайтов, использующих украинский язык, чтобы обеспечить корректное отображение всех текстов.
  10. usrnewnotify.install.sql Файл содержит SQL-скрипт, который выполняется при установке плагина. Он создаёт таблицу cot_usrnewnotify_logs в базе данных с полями log_id, log_user_id, log_user_name, log_user_email, log_ip, log_user_agent, log_device, log_browser, log_country, log_date, log_status и log_message. Этот скрипт обеспечивает правильную инициализацию структуры базы данных для хранения логов.
  11. usrnewnotify.uninstall.sql Этот файл содержит SQL-скрипт, который выполняется при деинсталляции плагина. Он удаляет таблицу cot_usrnewnotify_logs из базы данных, очищая все данные, связанные с плагином. Это гарантирует, что при удалении плагина не остаётся ненужных таблиц в базе.

     

 

Структура базы данных

Таблица cot_usrnewnotify_logs в базе данных хранит информацию о событиях регистрации. Поле log_id (целочисленное, первичный ключ) задаёт уникальный идентификатор записи. Поле log_user_id (целочисленное) указывает ID пользователя. Поле log_user_name (строковое) хранит имя пользователя, а log_user_email (строковое) — его email. Поле log_ip (строковое) сохраняет IP-адрес пользователя, поддерживая форматы IPv4 и IPv6. Поле log_user_agent (текстовое) содержит строку User-Agent. Поле log_device (строковое) указывает тип устройства (Mobile, Tablet, Desktop), а log_browser (строковое) — используемый браузер. Поле log_country (строковое) хранит страну, определённую по IP. Поле log_date (тип datetime) фиксирует дату и время события. Поле log_status (перечислимое, значения success или error) обозначает статус отправки уведомления. Поле log_message (текстовое) содержит сообщение, например, «Pending email validation» или «Notification sent successfully».

Безопасность

Плагин обеспечивает высокий уровень безопасности. Данные экранируются с помощью функции htmlspecialchars для защиты от XSS-атак. IP-адреса валидируются через filter_var, а email-адреса проверяются перед отправкой. SQL-запросы используют подготовленные выражения для предотвращения инъекций. Взаимодействие с API ip-api.com выполняется безопасно с обработкой возможных ошибок.

Лицензия

Плагин распространяется под лицензией BSD, что обеспечивает гибкость в использовании и модификации.

Автор

Разработчик плагина — webitproff. Контактная информация и другие проекты доступны на GitHub. Copyright © 2025 webitproff.

Известные проблемы

HTML-уведомления требуют поддержки HTML в почтовом клиенте, что может быть ограничением для некоторых пользователей. Определение устройства, браузера и страны зависит от данных User-Agent и API ip-api.com, что иногда может быть неточным. Бесплатная версия API ip-api.com ограничена 45 запросами в минуту, что нужно учитывать при высокой нагрузке.

Поддержка

Для вопросов и решения проблем создавайте Issue на GitHub. Обсуждение плагина доступно на форуме. Чтобы предложить разработчику задание или работу, свяжитесь по каналам на его странице.

Дата: 29 октября 2025 года

8 минут чтения Sodium Carbonate

Комментарии (0)

Комментарии отсутствуют
Добавление комментариев доступно только зарегистрированным пользователям

Автор контента

webitproff

Оффлайн

Sodium Carbonate

Последняя авторизация: 19.07.2026 01:57

  • Страница размещена: 29.10.2025 19:33
  • Последнее обновление: 30.10.2025 11:46
  • Язык: