Плагин Private Message (PM)
ID: pm
Name: Личные сообщения
Version: 0.7
Acts: usermenu, ppages
Actions: rpc; pm_ajax.php
File: pm.php
Install: install.php
Deinstall: uninstall.php
Config: config.php
Type: plugin
Description: Обмен приватными сообщениями между пользователями
Author: Alexey N. Zhukov (Wolverine)
Author_URI:
http://digitalplace.ru/Title: Личные сообщения
Information: Плагин организует возможность обмена приватными сообщениями между зарегистрированными пользователями сайта
1. Общая информация
Плагин Private Message (PM) предназначен для обмена личными сообщениями между пользователями на сайте, работающем на NextGeneration CMS (NGCMS).
Основные возможности:
- Отправка и получение личных сообщений
- Хранение входящих и исходящих сообщений
- Настройки уведомлений
- Поддержка BBCode и смайлов
- Пагинация сообщений
2. Установка и настройка
2.1. Установка плагина
- Загрузите файлы плагина в папку
/engine/plugins/pm/
- Активируйте плагин через админ-панель NGCMS
- Настройте необходимые параметры
2.2. Настройки плагина
Доступные параметры (настраиваются через админку):
| Параметр | Описание | Значение по умолчанию |
|---|
msg_per_page
| Количество сообщений на странице | 10 |
title_length
| Максимальная длина заголовка | 100 |
message_length
| Максимальная длина сообщения | 5000 |
localsource
| Использование локальных шаблонов | 0 |
3. Структура базы данных
Плагин использует следующие таблицы:
3.1. Таблица prefix_pm
| Поле | Тип | Описание |
|---|
id
| INT | ID сообщения |
from_id
| INT | ID отправителя |
to_id
| INT | ID получателя |
subject
| VARCHAR | Тема сообщения |
message
| TEXT | Текст сообщения |
date
| DATETIME | Дата отправки |
viewed
| TINYINT(1) | Прочитано (0/1) |
folder
| ENUM | Папка (inbox/outbox) |
3.2. Изменения в таблице uprefix_users
Добавляются следующие поля:
pm_all
- общее количество входящих сообщенийpm_unread
- количество непрочитанных сообщенийpm_sync
- флаг синхронизации счетчиковpm_email
- настройка email-уведомлений
4. Функционал плагина
4.1. Входящие сообщения (Inbox)
- Отображение списка полученных сообщений
- Подсчет непрочитанных сообщений
- Пагинация (разбивка на страницы)
- Возможность удаления сообщений
- Маркировка прочитанных сообщений
4.2. Исходящие сообщения (Outbox)
- Просмотр отправленных сообщений
- Удаление сообщений из исходящих
4.3. Чтение сообщений
- Отображение полного текста сообщения
- Поддержка форматирования (BBCode, смайлы)
- Кнопка ответа (для входящих сообщений)
4.4. Написание сообщений
- Форма отправки новых сообщений
- Автодополнение имени получателя
- Возможность сохранения копии в исходящих
- Поддержка BBCode и смайлов
4.5. Настройки
- Включение/отключение email-уведомлений
5. Шаблоны и интерфейс
5.1. Основные шаблоны
| Шаблон | Описание |
|---|
inbox.tpl
| Список входящих сообщений |
outbox.tpl
| Список исходящих сообщений |
read.tpl
| Просмотр сообщения |
write.tpl
| Форма отправки |
reply.tpl
| Форма ответа |
set.tpl
| Настройки уведомлений |
5.2. Основные переменные в шаблонах
| Переменная | Описание |
|---|
{{ pm_inbox_link }}
| Ссылка на входящие |
{{ pm_outbox_link }}
| Ссылка на исходящие |
{{ pm_set_link }}
| Ссылка на настройки |
{{ pm_read_link }}
| Ссылка на чтение сообщения |
{{ pm_del_link }}
| Ссылка на удаление |
{{ pm_write_link }}
| Ссылка на написание сообщения |
{{ pm_reply_link }}
| Ссылка на ответ |
{{ pm_send_link }}
| Ссылка на отправку сообщения |
{{ entries }}
| Список сообщений |
{{ pagination }}
| Пагинация |
6. API и интеграция
6.1. Основные функции
6.2. Хуки (hooks)
usermenu
- добавление счетчика сообщений в профильcore.userMenu
- фильтр для меню пользователя
Важно: В текущей реализации отсутствует защита от CSRF-атак. Рекомендуется добавить токены в формы.
7. Возможные улучшения
- Добавление групповых сообщений
- Вложения к сообщениям
- Черновики сообщений
- Поиск по сообщениям
- Улучшенная пагинация и фильтрация
- Поддержка markdown вместо BBCode
- Push-уведомления
- Добавление CSRF-защиты
8. Заключение
Плагин Private Message предоставляет базовый функционал личных сообщений для NGCMS. Он хорошо интегрируется в систему, но требует доработок для современных стандартов (безопасность, UX).
Скачать:pm.zip