В этой главе подробно рассматриваются встроенные плагины Seditio CMS, входящие в официальный дистрибутив системы. Вы изучите их назначение, структуру используемых таблиц в базе данных, особенности интеграции через систему хуков (Hooks), а также ЧПУ-адреса и параметры конфигурации.
7.1. Роль встроенных плагинов в экосистеме Seditio
В отличие от модулей (таких как page или forums), плагины в Seditio служат для точечного расширения функционала и кастомизации вывода без изменения исходного кода ядра. Плагины подключаются динамически в точках вызова хуков (подробнее о механизме работы хуков и манифестах см. в Главе 8. Архитектура и разработка плагинов).
Ядро автоматически управляет правами доступа к плагинам (ACL), их конфигурацией и локализацией (подробнее о локализации плагинов см. в Главе 11. Локализация и интернационализация).
7.2. comments (Система комментариев)
Плагин comments добавляет функционал комментирования страниц и тем форума.
- Таблица в БД (
sed_com):com_id(INT, Primary Key) — уникальный ID комментария.com_code(VARCHAR) — уникальный код комментируемого ресурса (например,p123для страницы ID 123 илиf456для темы форума ID 456).com_author(VARCHAR) — имя автора (или ник гостя).com_authorid(INT) — ID пользователя в таблицеsed_users(0 для гостей).com_text(TEXT) — текст комментария.com_date(INT) — UNIX-timestamp времени добавления.com_ip(VARCHAR) — IP-адрес автора.
- Используемые хуки:
page.tags— вывод комментариев и формы добавления на странице.forums.posts.tags— вывод комментариев в темах форума.ajax— асинхронная отправка и загрузка списка комментариев без перезагрузки страницы (вызов/plug?ajx=commentsилиindex.php?module=plug&ajx=comments).
- Адреса ЧПУ:
- Управление комментариями в админке:
/admin/commentsилиindex.php?module=admin&m=comments. - Конфигурация плагина:
/admin/config?n=edit&o=plug&p=commentsилиindex.php?module=admin&m=config&n=edit&o=plug&p=comments.
- Управление комментариями в админке:
7.3. ratings (Рейтинги контента)
Плагин ratings реализует возможность пятибалльной оценки страниц пользователями сайта.
- Таблицы в БД:
sed_ratings— хранит суммарную статистику оценок страниц:rating_code(VARCHAR, Primary Key) — код оцениваемого ресурса (например,p123).rating_average(DECIMAL) — средний балл оценки контента.rating_repeats(INT) — количество проголосовавших пользователей.
sed_rated— лог голосов для предотвращения повторного голосования:rated_code(VARCHAR) — код ресурса.rated_userid(INT) — ID проголосовавшего пользователя.rated_value(INT) — поставленная оценка (от 1 до 5).rated_ip(VARCHAR) — IP-адрес проголосовавшего (используется для ограничения накруток гостей).
- Используемые хуки:
page.tags— рендеринг виджета оценки и звезд рейтинга в шаблонах страниц.ajax— асинхронная фиксация голоса (вызов/plug?ajx=ratingsилиindex.php?module=plug&ajx=ratings).
7.4. tags (Облако тегов)
Плагин tags организует механизм ключевых слов (тегов) для классификации страниц и тем форума.
- Таблица в БД (
sed_tags):tag_id(INT, Primary Key) — ID записи.tag_code(VARCHAR) — код связанного объекта (например,p123).tag_text(VARCHAR) — текстовое значение тега в нижнем регистре (индексируется для быстрого поиска).
- Логика работы:
- При сохранении страницы плагин парсит поле ввода тегов, разбивает строку по разделителю (запятая) и обновляет таблицу
sed_tags. - Облако тегов генерируется путем расчета логарифмического веса популярности каждого тега и выводится глобальным тегом
{PHP.out.tags_cloud}.
- При сохранении страницы плагин парсит поле ввода тегов, разбивает строку по разделителю (запятая) и обновляет таблицу
- Адреса ЧПУ:
- Список материалов по конкретному тегу:
/tags/имя_тегаилиindex.php?module=tags&t=имя_тега.
- Список материалов по конкретному тегу:
7.5. recentitems (Последние публикации)
Плагин recentitems формирует списки последних добавленных страниц сайта и тем форума для вывода на главной странице или в виджетах.
- Особенности настройки:
- В конфигурации плагина задается лимит количества выводимых элементов, временной интервал актуальности и перечень исключаемых из показа категорий страниц.
- Используемые хуки:
index.tags— интеграция списков в шаблон главной страницы сайтаindex.tpl.
- Адреса ЧПУ:
- Настройка виджета:
/admin/config?n=edit&o=plug&p=recentitemsилиindex.php?module=admin&m=config&n=edit&o=plug&p=recentitems.
- Настройка виджета:
7.6. search (Полнотекстовый поиск)
Плагин search предоставляет форму и логику полнотекстового поиска по страницам и форумам.
- Особенности поиска:
- Поиск по страницам проверяет поля
page_title,page_text,page_desc, а также значения кастомных экстраполей (CCK). - Поиск по форумам анализирует заголовки тем (
ft_title) и тексты сообщений (fp_text). - Результаты выводятся постранично с подсветкой искомых слов.
- Поиск по страницам проверяет поля
- Адреса ЧПУ:
- Страница поиска и вывод результатов:
/searchилиindex.php?module=search.
- Страница поиска и вывод результатов:
7.7. trashcan (Корзина удаленных объектов)
Плагин trashcan обеспечивает временное хранение удаленных страниц, комментариев и сообщений форума для возможности их быстрого восстановления.
- Таблица в БД (
sed_trash):tr_id(INT, Primary Key) — ID записи в корзине.tr_type(VARCHAR) — тип объекта (page,comment,forum_topic,forum_post).tr_title(VARCHAR) — название или заголовок объекта на момент удаления.tr_info(TEXT) — служебная информация (ID автора удаления, дата операции).tr_datas(LONGTEXT) — сериализованный массив данных объекта, извлеченный из СУБД перед физическим удалением.
- Адреса ЧПУ:
- Просмотр корзины и восстановление данных в админке:
/admin/trashcanилиindex.php?module=admin&m=trashcan.
- Просмотр корзины и восстановление данных в админке:
7.8. sedcaptcha (Защита капчей)
Плагин sedcaptcha отвечает за генерацию графического кода подтверждения для защиты форм от автоматического спама и парсинга.
- Логика работы:
- Генерирует случайную строку из латинских букв и цифр, записывает её хэш в сессию пользователя.
- Использует встроенные функции PHP расширения
GDдля рендеринга изображения с добавлением шума (точек, линий) и искажением шрифта. - Перед обработкой формы сверяет отправленное значение с сохраненным в сессии.
- Адреса ЧПУ:
- Ссылка генерации изображения:
/plug?r=sedcaptchaилиindex.php?module=plug&r=sedcaptcha.
- Ссылка генерации изображения:
7.9. ckeditor (Визуальный редактор)
Плагин ckeditor интегрирует полнофункциональный визуальный редактор CKEditor в текстовые поля форм Seditio.
- Интеграция с PFS (Персональная файловая система):
- Плагин подключает JS-драйверы для интеграции с загрузчиком PFS. При клике на иконку «Вставить изображение» открывается окно PFS, позволяющее загрузить файл и в один клик вставить его в текст страницы (подробнее о PFS см. в
Главе 12. Персональная файловая система (PFS) и обработка медиа).
- Плагин подключает JS-драйверы для интеграции с загрузчиком PFS. При клике на иконку «Вставить изображение» открывается окно PFS, позволяющее загрузить файл и в один клик вставить его в текст страницы (подробнее о PFS см. в
- Кастомизация панели инструментов:
- Панель инструментов редактора настраивается в файле
plugins/ckeditor/ckeditor.config.jsв зависимости от группы пользователя (минимальная панель для обычных пользователей на форуме, расширенная — для администраторов).
- Панель инструментов редактора настраивается в файле
7.10. jevix (Фильтр-типограф пользовательского контента)
Плагин jevix осуществляет глубокую фильтрацию и автоматическое форматирование HTML-кода (типографику) в текстах, отправляемых пользователями.
- Основные возможности:
- Парсинг текста и очистка от нежелательных тегов, XSS-инъекций и вредоносных JS-скриптов.
- Автоматическая замена дефисов на тире, исправление кавычек («елочки»/“лапки”), авторасстановка неразрывных пробелов после предлогов.
- Настройка разрешенных HTML-тегов и их атрибутов отдельно для страниц и комментариев.
- Используемые хуки:
page.add.parse— обработка текста при сохранении страницы.comments.new.parse— обработка текста перед записью комментария в БД.
7.11. news (Вывод новостных лент)
Плагин news предназначен для организации структуры новостной ленты на главной странице или в подразделах сайта.
- Логика работы:
- Извлекает публикации из указанных в конфигурации категорий страниц.
- Генерирует TPL-теги новостей с поддержкой пагинации (постраничной навигации) и выводит их в шаблон
index.tpl.
- Адреса ЧПУ:
- Главная страница с пагинацией новостей:
/news/список-новостей?d=страницаилиindex.php?d=страница.
- Главная страница с пагинацией новостей:
7.12. rss (Экспорт в XML RSS 2.0)
Плагин rss осуществляет экспорт контента страниц и сообщений форума в стандартный XML-формат RSS 2.0 для чтения через внешние агрегаторы.
- Особенности экспорта:
- Экспорт последних страниц из выбранных категорий с сохранением HTML-разметки (или чистым текстом по выбору в конфигурации).
- Экспорт свежих тем форума.
- Адреса ЧПУ:
- RSS-лента страниц:
/rssилиindex.php?module=rss. - RSS-лента выбранной категории:
/rss/newsилиindex.php?module=rss&c=news. - RSS-лента форумов:
/rss/forumsилиindex.php?module=rss&m=forums.
- RSS-лента страниц:
7.13. contact (Форма обратной связи)
Плагин contact выводит страницу обратной связи с возможностью отправки сообщений посетителями сайта.
- Особенности:
- Проверка заполнения полей, защита формы капчей (
sedcaptcha). - Отправка сообщений на указанные в настройках Email-адреса администраторов.
- Запись истории входящих сообщений в базу данных.
- Проверка заполнения полей, защита формы капчей (
- Адреса ЧПУ:
- Страница контактов:
/contactилиindex.php?module=contact.
- Страница контактов:
7.14. smtp (Отправка почты через SMTP)
Плагин smtp заменяет стандартную отправку писем PHP-функцией mail() на отправку через защищенный внешний SMTP-сервер.
- Особенности работы:
- Интегрирует библиотеку PHPMailer в ядро CMS.
- Настройки авторизации (SMTP Auth, логин, пароль), шифрования (SSL/TLS) и порта указываются в панели конфигурации плагина.
- Позволяет обойти ограничения хостинга на отправку почты и снижает риск попадания писем в спам.
7.15. sitemap (XML Карта сайта)
Плагин sitemap автоматически генерирует динамический файл карты сайта sitemap.xml для индексации поисковыми системами.
- Логика работы:
- Сканирует структуру категорий, список активных страниц и разделов форума.
- Формирует XML-структуру с учетом приоритета (
priority) и даты последнего изменения страниц (lastmod).
- Адреса ЧПУ:
- Ссылка на карту сайта:
/sitemap.xmlилиindex.php?module=sitemap.
- Ссылка на карту сайта:
7.16. similarpages (Похожие публикации)
Плагин similarpages подбирает и выводит список похожих страниц для улучшения внутренней перелинковки.
- Принципы подбора:
- Поиск похожих материалов осуществляется на основе совпадения тегов (
tags) или по нахождению страниц в той же категории. - Вывод результатов кэшируется для минимизации нагрузки на базу данных.
- Поиск похожих материалов осуществляется на основе совпадения тегов (
- Используемые хуки:
page.tags— встраивание виджета похожих страниц в шаблонpage.tpl.
7.17. thanks (Система благодарностей)
Плагин thanks позволяет пользователям благодарить авторов за полезные сообщения на форуме или публикации.
- Таблица в БД (
sed_thanks):th_id(INT, Primary Key) — ID благодарности.th_touser(INT) — ID пользователя, которого благодарят.th_fromuser(INT) — ID пользователя, который благодарит.th_date(INT) — UNIX-timestamp даты события.th_item(INT) — ID сообщения на форуме (или страницы).
- Используемые хуки:
forums.posts.tags— вывод кнопки «Спасибо» и списка поблагодаривших под сообщением.ajax— асинхронное добавление благодарности (вызов/plug?ajx=thanksилиindex.php?module=plug&ajx=thanks).
7.18. uploader (Асинхронный загрузчик)
Плагин uploader расширяет Персональную файловую систему (PFS) возможностью асинхронной загрузки файлов перетаскиванием (Drag & Drop).
- Особенности:
- Реализован на базе AJAX-загрузки файлов, интегрирован с системным Upload API (подробнее об асинхронной загрузке см. в
Главе 12. Персональная файловая система (PFS) и обработка медиа). - Отображает прогресс-бар загрузки каждого файла, автоматически генерирует превью для картинок.
- Реализован на базе AJAX-загрузки файлов, интегрирован с системным Upload API (подробнее об асинхронной загрузке см. в
- Используемые хуки:
pfs.tags— вывод виджета Drag & Drop в окне управления файлами PFS.
7.19. whosonline (Мониторинг активности «Кто онлайн»)
Плагин whosonline фиксирует и отображает список пользователей и гостей, находящихся в данный момент на страницах сайта.
- Таблица в БД (
sed_online):online_ip(VARCHAR) — IP-адрес посетителя.online_user(VARCHAR) — никнейм (или «Гость»).online_userid(INT) — ID пользователя (0 для гостей).online_lastactive(INT) — UNIX-timestamp последнего действия.online_location(VARCHAR) — текущий раздел сайта (определяется по GET-параметрам URL).online_sublocation(VARCHAR) — дополнительная информация о нахождении (например, название темы форума).
- Адреса ЧПУ:
- Страница списка активных пользователей:
/plug/whosonlineилиindex.php?module=plug&e=whosonline.
- Страница списка активных пользователей:
7.20. skineditor (Редактор скинов в панели управления)
Плагин skineditor предоставляет администраторам инструмент для просмотра и редактирования файлов оформления скина непосредственно из панели управления.
- Возможности:
- Просмотр дерева файлов активного скина в каталоге
skins/. - Редактирование HTML-разметки шаблонов (
.tpl), стилей (.css) и JS-скриптов с подсветкой синтаксиса. - Автоматическое создание резервных копий редактируемых файлов перед сохранением.
- Просмотр дерева файлов активного скина в каталоге
- Адреса ЧПУ:
- Панель редактора:
/admin/skineditorилиindex.php?module=admin&m=skineditor.
- Панель редактора:
7.21. cleaner (Автоматическая очистка БД)
Плагин cleaner выполняет регламентные работы по поддержанию чистоты базы данных в фоновом режиме.
- Особенности работы:
- Запускается по хуку
common.mainс вероятностью, заданной в конфигурации (например, 1 раз на 100 просмотров страниц). - Удаляет устаревшие сессии гостей из таблицы
sed_online. - Вычищает старые логи системного журнала
sed_logстарше установленного срока. - Очищает временные файлы кэша в директории
datas/cache/.
- Запускается по хуку
7.22. Прочие встроенные плагины
adminqv(Quick View) — выводит виджеты сводной статистики сайта, последних логов системного журнала и быстрых настроек на главной странице панели управления.letteravatar(Буквенные аватары) — автоматически генерирует аватары с первой буквой имени пользователя (для зарегистрированных участников, не загрузивших персональный аватар в профиле).massmovetopics(Массовый перенос тем) — предоставляет модераторам форума инструмент пакетного переноса тем из одного раздела форума в другой в один клик.otherpages(Другие страницы) — формирует список случайных или наиболее просматриваемых публикаций из выбранных категорий для вывода в сайдбаре шаблонов.passrecover(Восстановление доступа) — обрабатывает запросы пользователей на восстановление забытых паролей с отправкой одноразового ключа подтверждения на привязанную почту.robots(Редактор robots.txt) — позволяет динамически изменять содержимое файлаrobots.txtнепосредственно из панели конфигурации плагина в админке.slider(Слайдер изображений) — выводит адаптивный слайдер картинок на главной странице сайта на основе загруженных в PFS медиафайлов.statistics(Статистика сайта) — собирает и выводит подробную общую статистику CMS (общее количество страниц, тем и сообщений форума, комментариев, пользователей, размер вложенных файлов).syntaxhighlight(Подсветка синтаксиса) — подключает JavaScript библиотеку подсветки кода для красивого отображения тегов[code]в публикациях на страницах и форуме.syscheck(Диагностика окружения) — выводит отчет о соответствии сервера системным требованиям Seditio (версия PHP, СУБД, наличие расширений mbstring, gd, права доступа на запись в каталогиdatas/иskins/).ipsearch(Поиск по IP) — инструмент для администраторов в панели управления, позволяющий быстро определить страну, провайдера и другие данные пользователя по его IP-адресу с использованием внешних API-сервисов.
Комментарии: (0)