Глава 3. Панель управления (Административная зона)

03-07-26 15:36

В этой главе подробно рассматривается устройство и возможности панели управления (административной зоны) CMS Seditio. Вы узнаете, как устроен интерфейс управления, как конфигурировать ядро, модули и плагины, как работает уникальный механизм управления экстраполями (словарями), как обслуживать базу данных, очищать кэш и вести системный аудит событий.


3.1. Обзор интерфейса панели администратора

Панель управления Seditio CMS доступна по адресу /admin (или index.php?module=admin без ЧПУ). Доступ предоставляется пользователям, входящим в группу с правами администратора (по умолчанию системная группа administrators с ID = 5). Доступ к конкретным подразделам админ-панели разграничивается с помощью матрицы прав (ACL).

Основным системным файлом, отвечающим за загрузку панели управления, является контроллер system/core/admin/admin.php, который инициализирует сессию администратора, подключает файл локализации system/lang/ru/admin.lang.php и передает управление в диспетчер system/core/admin/admin.inc.php.

3.1.1. Двухпанельная структура интерфейса

Интерфейс панели администратора разделен на две основные функциональные области:

  1. Сайдбар (Левая боковая панель / Sidebar): Имеет темное оформление. В верхней части выводится аватар текущего администратора и приветствие (например, «Hi, Amro»). Ниже расположен вертикальный список ссылок на главные разделы управления.
  2. Основное содержимое (Правая часть / Main Content): Здесь отображаются рабочие формы, списки элементов, таблицы статистики.
    • Верхнее горизонтальное меню: Располагается прямо над основной областью контента. В левой части выводятся «хлебные крошки» (навигационная цепочка / breadcrumbs, например: Administration panel > Home или Administration panel > Configuration), а также кнопка быстрого перехода на сайт Go to site. В правой части находятся ссылки на профиль администратора (Profile), личные файлы (My files), количество непрочитанных ЛС (No private messages) и кнопку выхода (Logout).

3.1.2. Динамическая структура сайдбара

Сайдбар Seditio не является жестко зафиксированным: установленные модули и плагины могут динамически добавлять в него собственные пункты и раскрывающиеся подразделы.

При сборке страницы админки загрузчик system/core/admin/admin.header.php сканирует каталоги active-компонентов и ищет в них файлы описания меню:

  • Для модулей: /modules/{имя_модуля}/admin/{имя_модуля}.admin.menu.php
  • Для плагинов: /plugins/{имя_плагина}/admin/{имя_плагина}.admin.menu.php

Этот файл должен возвращать ассоциативный массив конфигурации меню. Если файл найден и у пользователя есть права на просмотр компонента, его пункт автоматически встраивается в сайдбар. Все пункты сортируются по ключу order (по возрастанию), а при совпадении — по алфавиту названия.


3.1.3. Внутренний роутинг админ-панели (admin.inc.php)

За диспетчеризацию разделов панели управления отвечает файл system/core/admin/admin.inc.php, принимающий параметр m (модуль/действие) в GET-запросе:

  1. Проверка модуля: Сначала код выполняет SQL-запрос к таблице sed_core, проверяя, зарегистрирован ли модуль с кодом m и имеет ли он признак администрирования (ct_admin = 1). Если да, то подключается индивидуальный файл администрирования модуля по соглашению: modules/{m}/admin/{m}.admin.php (например, modules/page/admin/page.admin.php для модуля страниц при обращении по адресу /admin/page или index.php?module=admin&m=page без ЧПУ).
    • Диспетчеризация внутри модуля по параметру s: Подключенный файл администрирования модуля выступает роутером второго уровня. Например, в page.admin.php логика распределяется в зависимости от переданного параметра s ($s = sed_import('s', 'G', 'ALP', 24)):
      • $s == 'add' подключает файл page.admin.add.php (добавление страниц).
      • $s == 'edit' подключает файл page.admin.edit.php (редактирование страниц).
      • $s == 'manager' подключает файл page.admin.manager.php (Менеджер страниц).
      • Во всех остальных случаях (по умолчанию) подключается файл page.admin.structure.php (управление категориями и структурой разделов модуля страниц).
  2. Проверка плагина: Если модуль не найден, роутер проверяет, активен ли плагин с кодом m. Если да, то подключается файл администрирования плагина: plugins/{m}/{m}.admin.plug.php (например, для плагина корзины по адресу /admin/trashcan или index.php?module=admin&m=trashcan без ЧПУ).
  3. Системный резервный путь (Fallback): Если обе проверки не дали результата, загружается соответствующий файл администрирования ядра из папки system/core/admin/. По умолчанию загружается admin.home.inc.php (если m пустой), admin.{m}.inc.php или admin.{m}.{s}.inc.php (при наличии параметра секции s).

Пример 1. Динамическое меню модуля Страниц (page)

Файл: /modules/page/admin/page.admin.menu.php

return array(
    'title'     => 'core_page',                       // Языковой ключ для названия пункта в сайдбаре ($L['core_page'])
    'order'     => 10,                                 // Позиция сортировки (модуль выводится выше остальных)
    'adminlink' => sed_url('admin', 'm=page&s=manager'), // Основная ссылка при клике на пункт меню
    'sections'  => array(                              // Массив подразделов выпадающего меню
        'queue' => array(
            'label' => 'adm_valqueue',                 // Название: "Очередь валидации"
            'auth'  => array('admin', 'any', 'A'),     // Доступно только администраторам
            'param' => 'mn'                            // GET-параметр ссылки (будет сгенерировано: m=page&mn=queue)
        ),
        'add' => array(
            'label' => 'addnewentry',                  // Название: "Добавить страницу"
            'auth'  => array('page', 'any', 'A'),      // Права на запись/модерацию в модуле страниц
            'param' => 's'                             // Ссылка: m=page&s=add
        ),
        'manager' => array(
            'label' => 'adm_pagemanager',              // Название: "Управление страницами"
            'auth'  => array('page', 'any', 'A'),
            'param' => 's'                             // Ссылка: m=page&s=manager
        ),
        'structure' => array(
            'label' => 'adm_structure',                // Название: "Структура разделов"
            'auth'  => array('admin', 'a', 'A'),
            'param' => 'mn'                            // Ссылка: m=page&mn=structure
        )
    )
);

Пример 2. Одиночный пункт меню плагина Корзины (trashcan)

Файл: /plugins/trashcan/admin/trashcan.admin.menu.php

return array(
    'title'     => 'Trashcan',                 // Название пункта меню
    'order'     => 15,                          // Порядок сортировки
    'adminlink' => sed_url('admin', 'm=trashcan'), // Ссылка
    'auth'      => array('plug', 'trashcan', 'A'), // Доступно только администраторам плагина корзины
    'sections'  => array()                     // Подменю отсутствует (пункт выводится как одиночная кнопка)
);

3.2. Главные настройки системы (Конфигурация)

Настройка всех параметров Seditio осуществляется в разделе «Конфигурация» (m=config).

3.2.1. Подразделы конфигурации ядра (o=core)

Ядро системы разбито на строго определенные категории настроек:

  1. Main setup (Основные настройки): Глобальные параметры сайта (название, описание, e-mail администратора, скин сайта по умолчанию, язык интерфейса по умолчанию, типы контента).
  2. Time and date (Время и дата): Форматы отображения даты и времени по всему сайту, часовой пояс сервера и пользователей.
  3. Skins (Скины): Настройки вывода HTML-кода (принудительный скин для всех, тип документа HTML, глобальная кодировка, ключевые слова по умолчанию, разделитель заголовков), а также переключатели вывода времени генерации страниц, сохранения копирайта и вывода SQL-статистики в подвале (footer.tpl).
  4. Languages (Языковые пакеты): Содержит единственную опцию принудительного навязывания дефолтного языка всем посетителям (forcedefaultlang).
  5. Menu slots (Слоты меню / Текстовые блоки): Глобальные текстовые области (слоты) для ввода HTML/JS-кода сквозных блоков сайта (например, кодов баннеров, линий верха и низа сайта, навигационных списков меню). Содержимое этих полей подставляется в TPL-шаблоны оформления через соответствующие TPL-теги (например, {HEADER_BANNER} в header.tpl, {FOOTER_BOTTOMLINE} в footer.tpl, {HEADER_TOPLINE} в header.tpl, а также глобальные теги вида {PHP.cfg.menu1}, {PHP.cfg.menu2}, {PHP.cfg.menu3} для всех файлов шаблонов). Это позволяет администратору быстро изменять общие HTML-структуры сайта прямо из админки без редактирования файлов тем на сервере.
  6. Images (Изображения): Конфигурация обработки картинок (библиотека GD, качество сжатия jpeg/webp, максимальные и минимальные размеры загружаемых картинок).
  7. Plugins (Плагины): Содержит единственную глобальную опцию для включения/выключения работы всех плагинов на сайте (Disable the plugins).
  8. HTML Meta (HTML Мета-теги): Настройка шаблонов для генерации тега заголовка браузера (<title>) для ядра и плагинов. Содержит три шаблона заголовков: по умолчанию (defaulttitle), для главной страницы (indextitle) и для плагинов (plugtitle). Настройки мета-тегов для страниц, форумов и PFS задаются в конфигурациях соответствующих модулей.
  9. Home page (Главная страница): Настройка SEO-параметров исключительно для главной страницы сайта. Здесь задаются: Homepage title (заголовок главной страницы, hometitle), Homepage meta description (описание сайта, homemetadescription) и Homepage meta keywords (ключевые слова сайта, homemetakeywords). Все эти параметры являются опциональными и используются поисковыми роботами для индексации главной страницы.

3.2.2. Конфигурация модулей и плагинов (o=module / o=plug)

Каждый установленный модуль или плагин может иметь свои параметры. Они считываются из его .setup.php файла при установке и записываются в таблицу базы данных sed_config.

В интерфейсе редактирования настроек администратору доступны две полезные функции:

  1. Сбросить к значениям по умолчанию (Reset): Сбросить настройки компонента к исходным значениям, прописанным разработчиком в файле setup.
  2. Добавить недостающие параметры (Add missing parameters): Если вы обновили плагин или модуль до новой версии, где появились новые настройки, эта кнопка просканирует setup-файл и добавит новые опции в базу данных без необходимости переустановки компонента.

3.3. Управление модулями и плагинами

В Seditio разделы «Модули» (m=modules) и «Плагины» (m=plug) служат для инсталляции, контроля состояния и быстрого администрирования расширений.

3.3.1. Панель управления модулями (m=modules)

Этот раздел выводит сводную таблицу всех модулей, обнаруженных в каталоге /modules/. Для каждого модуля отображаются:

  • Название (Modules): Имя модуля (сопровождается иконкой) и ссылка на карточку его описания.
  • Код (Code): Системный идентификатор модуля в CMS (например, forums, gallery, page, pfs, pm, polls, users).
  • Версия (Version): Версия сборки модуля (например, 1.0.0).
  • Статус (Running): Текущее состояние работы модуля:
    • Running (Работает) — модуль полностью активен и доступен на сайте.
    • Paused (Приостановлен) — модуль временно отключен администратором.
    • Not installed (Не установлен) — файлы модуля загружены, но он не установлен в систему.
  • Инструменты быстрого действия:
    • Настройки (Configuration / Иконка шестеренки): Ведет на страницу конфигурации данного модуля. Если у модуля нет собственных настроек, иконка не отображается.
    • Права (Rights / Иконка замочка): Перенаправляет в матрицу прав доступа (ACL) для быстрой настройки разрешений на чтение, запись или модерирование этого модуля для различных групп пользователей.
    • Открыть (Open / Иконка стрелочки): Быстрый переход в публичный раздел данного модуля на сайте.

3.3.2. Панель управления плагинами (m=plug)

Раздел устроен аналогично панели модулей и выводит список всех плагинов из папки /plugins/:

  • Название и описание: Иконка, название плагина и краткое описание его функционала. При переходе по ссылке открывается карточка плагина со списком его файлов и хуков.
  • Код (Code) и Версия (Version): Системный идентификатор плагина (например, comments, tags, sedcaptcha) и его текущая версия.
  • Статус (Status):
    • Running (Работает) — плагин полностью активен.
    • Paused (Приостановлен) — плагин отключен.
    • Partially running (Работает частично) — часть хуков/частей плагина активна, часть временно отключена.
    • Not installed (Не установлен) — плагин готов к установке.
  • Инструменты быстрого действия:
    • Настройки (Configuration / Иконка шестеренки): Переход в форму детальной конфигурации плагина (если плагин регистрирует свои настройки).
    • Права (Rights / Иконка замочка): Быстрое редактирование прав доступа (ACL) для плагина.
    • Открыть (Open / Иконка стрелочки): Быстрый переход к странице плагина на сайте (доступно для плагинов, имеющих самостоятельный раздел с хуком standalone).

3.3.3. Матрица прав доступа (ACL) для компонентов (на примере Форумов)

При клике на иконку замочка («Права») напротив любого модуля или плагина администратор переходит в интерфейс настройки прав доступа (Rights).

На странице настройки прав для модуля (например, Rights / Forums для управления доступом к форуму) представлена таблица со следующей структурой:

  • Группы пользователей (Groups): Полный список зарегистрированных в системе групп (например, Administrators, Moderators, Inactive, Banned, Members, Guests и др.).
  • Права группы (Rights per group / Иконка замка): Быстрый переход к индивидуальной матрице прав для выбранной группы.
  • Матрица базовых прав: Для каждой группы выводятся три чекбокса с графическими индикаторами (их расшифровка находится внизу страницы в блоке Help):
    1. Read (Чтение / Иконка пустого листа): Разрешает пользователям этой группы просматривать разделы модуля (например, читать темы на форуме). Значение битовой маски в БД: 1.
    2. Write (Запись / Иконка листа с карандашом): Позволяет пользователям создавать контент (писать сообщения, создавать новые темы, отправлять комментарии). Значение битовой маски в БД: 2.
    3. Administration (Администрирование / Иконка молнии): Предоставляет группе административные и модераторские права внутри этого модуля (например, возможность удалять и переносить чужие темы на форуме). Значение битовой маски в БД: 128.
  • Расширенные права (Advanced rights): Если администратор открывает настройки прав с GET-параметром advanced=1 (кликнув по ссылке расширенных прав), таблица отображает дополнительные 5 кастомных чекбоксов для каждой группы: Custom #1 (маска 4), Custom #2 (маска 8), Custom #3 (маска 16), Custom #4 (маска 32) и Custom #5 (маска 64). Они используются модулями и плагинами для реализации специфической логики доступа.
  • Аудит изменений (Set by): Отображает имя администратора, который в последний раз редактировал или сохранял права для этой группы (например, Amro). Это позволяет отслеживать, кто именно вносил изменения в настройки безопасности (поле auth_setbyuserid).
  • Быстрый переход (Open): Зеленая стрелочка для открытия текущих настроек группы.

После настройки чекбоксов администратор нажимает кнопку «Обновить» (Update) внизу таблицы для применения изменений в БД.


3.4. Управление пользователями и правами групп (User Groups & ACL)

Раздел «Пользователи» (доступный по адресу /admin/users или index.php?module=admin&m=users без ЧПУ) предназначен для ведения списков групп пользователей, настройки их базовых параметров и полного разграничения прав доступа (ACL — Access Control List) ко всем системным ресурсам ядра, модулей и плагинов.

3.4.1. Интерфейс списка групп пользователей (User groups)

На этой странице администратор видит список всех существующих групп пользователей:

  • Идентификатор (#ID): Системный ID группы в базе данных. Некоторые ID зарезервированы ядром Seditio:
    • 5 — Administrators (Администраторы).
    • 6 — Moderators (Модераторы).
    • 4 — Members (Зарегистрированные пользователи).
    • 3 — Banned (Заблокированные пользователи).
    • 2 — Inactive (Неактивные / Ожидающие активации).
    • 1 — Guests (Гости / Незарегистрированные посетители).
  • Название группы (Groups): Имя группы (например, Administrators, Moderators, Russian team).
  • Участники (Members): Общее количество пользователей, добавленных в эту группу.
  • Основная группа (Main): Количество пользователей, у которых данная группа выбрана в качестве основной (определяет скин, права и отображение роли пользователя по умолчанию).
  • Флаги состояния:
    • Disabled (Yes/No) — отключена ли группа (колонка grp_disabled в БД).
    • Hidden (Yes/No) — скрыта ли группа от обычных пользователей в списках (колонка grp_hidden в БД).
  • Права (Rights / Иконка замочка): Ссылка на глобальную матрицу прав для этой группы пользователей.

3.4.2. Глобальная матрица прав группы (на примере Rights: Administrators)

При переходе по иконке замочка («Права») напротив нужной группы открывается полная таблица настроек доступа ко всем разделам системы:

  • Разделы ядра (Core): Список всех системных контроллеров ядра (например, Administration panel — доступ в админку, Directories & Extra fields — доступ к словарям, Gallery — галерея, Home page — главная страница, Log — журнал логов, Manage — инструменты администрирования, Menu manager — меню, Users — управление пользователями).
  • Разделы модулей и плагинов: Список всех установленных в системе модулей и плагинов.
  • Базовые права (Чекбоксы Read, Write, Administration):
    • Read (Чтение / Иконка пустого листа) — право просматривать раздел.
    • Write (Запись / Иконка листа с карандашом) — право добавлять и редактировать контент в разделе.
    • Administration (Администрирование / Иконка молнии) — право администрировать и модерировать раздел.
  • Аудит изменений (Set by): Фиксирует логин администратора, последним изменившего права доступа для данного раздела в этой группе (например, Amro).

Благодаря этой гибкой матрице можно создать любую роль пользователя — от простого редактора, имеющего право только писать статьи в раздел Pages, до технического администратора или глобального модератора форумов.


3.5. Локализация интерфейса (Языковые пакеты)

В Seditio CMS реализована гибкая мультиязычная архитектура локализации интерфейса. Все текстовые константы, системные сообщения, подписи элементов управления и шаблонов не зашиты жестко в исходном коде, а вынесены в языковые файлы:

  • Глобальные языковые файлы: Находятся в папке /system/lang/ (например, /system/lang/ru/main.ru.lang.php — основной языковой файл для русского языка). Они переводят ядро, базовые системные константы и заголовки.
  • Локальные файлы модулей: Располагаются внутри папок самих модулей (например, /modules/page/lang/page.ru.lang.php содержит переводы для модуля страниц).
  • Локальные файлы плагинов: Хранятся в папках плагинов (например, /plugins/contact/lang/contact.ru.lang.php отвечает за перевод формы обратной связи).

Глобальный язык сайта по умолчанию настраивается непосредственно в конфигурационном файле datas/config.php с помощью параметра $cfg['defaultlang']. В панели администратора (раздел «Конфигурация» → «Языки») отображается только статус установленных в системе языковых пакетов и текущий дефолтный язык (отмечен галочкой в колонке Default), а также доступна опция принудительного навязывания дефолтного языка всем посетителям (forcedefaultlang). Если эта опция отключена (установлено No), Seditio автоматически определяет язык авторизованного пользователя на основе настроек в его профиле (поле user_lang). Для гостей сайта всегда применяется глобальный язык по умолчанию.


3.6. Управление словарями и экстраполями (CCK / Extra Fields, m=dic)

Раздел «Словари» (доступный по адресу /admin/dic или index.php?module=admin&m=dic без ЧПУ) в Seditio — это мощный визуальный конструктор базы данных (аналог CCK в Drupal или Extra Fields в Cotonti). Он позволяет администратору расширять стандартную структуру таблиц базы данных (страниц pages, пользователей users, комментариев com и т.д.), добавляя новые поля прямо из панели управления без необходимости писать SQL-запросы или использовать phpMyAdmin.

3.6.1. Ключевая концепция: Словари (Directories) и Экстраполя (Extrapoles)

Конструктор в Seditio базируется на разделении сущностей справочников и физических полей базы данных:

  • Словари (Directories): Служат хранилищем терминов (вариантов значений). Они описывают структуру данных и варианты выбора.
  • Экстраполя (Extrapoles / Extra fields): Связывают словари со структурами данных системы (страницами, пользователями и т.д.), превращая их в физические колонки таблиц БД и поля шаблонов TPL.

3.6.2. Пошаговый процесс создания нового поля

  1. Создание словаря («Directory»): Администратор создает новый справочник, где задает:
    • Code (Код): Системный идентификатор, который послужит базой для TPL-плейсхолдеров и имени колонки в БД.
    • Type (Тип): Формат поля (например, простое текстовое поле input, числовое number, текстовая область textarea, редактор wysiwyg, выпадающий список select, переключатели radio или флажки checkbox).
    • Values (Значения): Для списочных типов (select, radio, checkbox) указывается источник данных (словарь).
  2. Заполнение элементов («Terms list»): При необходимости (для списочных типов) администратор наполняет словарь терминами. Для каждого термина задаются:
    • Title: Отображаемое для пользователя текстовое название (например, «Красный»).
    • Value: Сохраняемый в базу данных системный код значения (например, red).
    • Default term: Опциональная отметка, делающая текущий термин значением по умолчанию при создании новой записи.
  3. Создание экстраполя («Extra field»): Администратор переходит к созданию связи и указывает Location (место интеграции: pages, users, comments и т.д.). После сохранения Seditio автоматически производит модификацию базы данных: отправляет SQL-запрос ALTER TABLE и добавляет физическую колонку в целевую таблицу по шаблону tableprefix_{CODE} (например, page_{CODE}, user_{CODE}, com_{CODE}).

3.6.3. Автоматическая интеграция и TPL-теги

После привязки экстраполя Seditio автоматически генерирует набор тегов (плейсхолдеров) для использования в TPL-шаблонах оформления.

При выводе данных на страницах сайта для каждого поля {CODE} (например, {PAGE_PRICE}) формируются следующие плейсхолдеры:

  • {XXX_CODE} — выводит финальное значение экстраполя (для простых полей выводит введенный текст; для списочных типов автоматически преобразует сохраненное значение Value в отображаемый текст термина Title на основе словаря). В формах редактирования этот же тег автоматически генерирует готовый элемент ввода (поле, селектбокс, радио-кнопки).
  • {XXX_CODE_TITLE} — выводит название (заголовок) данного экстраполя.
  • {XXX_CODE_DESC} — выводит текстовое описание экстраполя.
  • {XXX_CODE_MERA} — выводит единицу измерения (меру) экстраполя.
  • {XXX_CODE_VAL} — выводит сырое значение (raw value), хранящееся непосредственно в физической ячейке базы данных (например, системный код red вместо текстового названия «Красный»).

3.7. Инструменты обслуживания базы данных и очистки кэша

Для обеспечения высокой скорости работы и технической исправности сайта в панели управления предусмотрены встроенные инструменты обслуживания (доступные по адресу /admin/cache и /admin/manage или index.php?module=admin&m=cache и index.php?module=admin&m=manage без ЧПУ).

3.7.1. Управление внутренним кэшем (m=cache)

В Seditio CMS используется гибридная система кэширования для минимизации нагрузки на базу данных и процессор. Движок разделяет кэшируемые данные на три независимых типа, каждым из которых администратор может управлять из панели администрирования:

  1. Системный кэш (БД):
    • Где хранится: В таблице базы данных sed_cache в виде сериализованных данных PHP.
    • Что кэшируется: Глобальные настройки конфигурации сайта (sed_config), структура разделов и категорий страниц, списки и хуки установленных модулей и плагинов.
    • Управление: Кнопка «Очистить всё» (Purge) выполняет очистку таблицы sed_cache. Это заставляет ядро Seditio заново считать структуру модулей, плагинов и категорий при следующем обращении к сайту и перезаписать кэш.
  2. Кэш шаблонов (Файловая система):
    • Где хранится: В каталоге /datas/cache/ на сервере в виде скомпилированных PHP-файлов шаблонов.
    • Что кэшируется: Сгенерированные HTML-шаблоны интерфейса сайта (TPL-файлы). Шаблонизатор XTemplate компилирует TPL-файлы в оптимизированный PHP-код для предотвращения повторного синтаксического анализа разметки при каждом обращении к странице.
    • Управление: Кнопка «Очистить кэш шаблонов» (Purge TPL cache) вызывает функцию sed_tplcache_clear(), удаляющую скомпилированные файлы из папки /datas/cache/. Рекомендуется использовать после ручного редактирования tpl-файлов для немедленного обновления интерфейса.
  3. Кэш ЧПУ (Файловая система):
    • Где хранится: В файле /datas/cache/sed_urls.php.
    • Что кэшируется: Скомпилированный массив правил роутинга и человекопонятных (SEF) URL для ядра, модулей и плагинов, отсортированный по позициям (приоритетам).
    • Управление:
      • Удалить кэш ЧПУ: Удаляет файл sed_urls.php с сервера.
      • Пересоздать кэш ЧПУ (Regenerate SEF URLs): Принудительно запускает функцию sed_urls_generate(), которая заново сканирует правила роутинга, пересортировывает их по приоритетности и генерирует свежий файл кэша.

3.7.2. Раздел «Инструменты» (m=manage)

Этот раздел представляет собой единый диспетчер (панель управления) для доступа к дополнительным встроенным системным утилитам, сторонним модулям и плагинам, зарегистрировавшим административные инструменты (Tools):

  • Встроенные системные утилиты:
    • Бан-лист (m=banlist): Просмотр и редактирование списка заблокированных IP-адресов, подсетей и e-mail адресов.
    • Внутренний кэш (m=cache): Управление кэшем базы данных, ЧПУ и скомпилированными файлами шаблонов.
    • Смайлики (m=smilies): Управление системным каталогом смайлов (настройка кодов автозамены и привязка к изображениям).
    • Посещения (m=hits): Просмотр логов посещаемости сайта с детализацией по годам, месяцам и дням.
    • Рефереры (m=referers): Анализ источников внешних переходов на сайт.
  • Сторонние модули: Управление дополнительными модулями (например, forums, pfs, gallery, polls), не входящими в базовое ядро системы.
  • Плагины-инструменты (Tools): Вызов административных панелей и интерфейсов настройки для плагинов, зарегистрировавших обработчики через хук tools (например, редактор скинов skineditor, утилита проверки сервера syscheck и др.).

3.8. Логирование системных событий и аудит действий пользователей

Для контроля безопасности и отслеживания изменений в Seditio встроен системный журнал логов (доступный по адресу /admin/log или index.php?module=admin&m=log без ЧПУ).

Системные события регистрируются через функцию sed_log($text, $group = 'def') и сохраняются в таблицу базы данных sed_logger. Каждая запись содержит:

  • log_id (mediumint, auto_increment): Уникальный ID события.
  • log_date (int): Точное время совершения действия в формате Unix timestamp (с учетом смещения времени $sys['now_offset']).
  • log_ip (varchar(45)): IP-адрес пользователя, поддерживающий форматы IPv4 и IPv6. В интерфейсе логов IP-адрес выводится в виде активной ссылки на быстрый поиск активности по данному адресу через встроенный инструмент ipsearch (m=manage&p=ipsearch&a=search&id={IP}).
  • log_name (varchar(24)): Имя (логин) пользователя, совершившего действие (из $usr['name']).
  • log_group (varchar(4)): Группа события (категория лога).
  • log_text (varchar(255)): Детальный текстовый лог. При сохранении ядро Seditio автоматически отсекает слишком длинные строки и дописывает в конец значение $sys['request_uri'] (адрес страницы, на которой произошло событие).

3.8.1. Группы системного журнала (log_group)

При просмотре журнала администратору доступна фильтрация событий по следующим категориям:

  • Все (all): Отображает полный список записей без фильтрации.
  • По умолчанию (def): Общие события, не отнесенные к специализированным группам (например, добавление/удаление терминов или справочников).
  • Администрирование (adm): Изменение глобальных настроек сайта, обновление конфигурации модулей, очистка системного кэша.
  • Форумы (for): Модераторские и административные действия на форумах (перенос, удаление, закрытие, прикрепление тем, ресинхронизация разделов).
  • Безопасность (sec): Неудачные попытки авторизации, попытки доступа гостей к закрытым разделам, блокировки IP за спам или флуд.
  • Пользователи (usr): Изменения профилей, регистрация новых аккаунтов, удаление пользователей, смена паролей.
  • Плагины (plg): Установка, удаление, приостановка работы плагинов и вызовы их компонентов.
  • Система (sys): Системные предупреждения, ошибки импорта параметров и другие служебные логи.

Администратор с полными правами (isadmin) может полностью очистить журнал событий с помощью кнопки «Очистить всё» (вызывает операцию TRUNCATE над таблицей sed_logger с перенаправлением пользователя обратно на страницу логов).

Ratings:
(0.00)

No comments yet