В этой главе подробно рассматривается устройство и возможности панели управления (административной зоны) CMS Seditio. Вы узнаете, как устроен интерфейс управления, как конфигурировать ядро, модули и плагины, как работает уникальный механизм управления экстраполями (словарями), как обслуживать базу данных, очищать кэш и вести системный аудит событий.
3.1. Обзор интерфейса панели администратора
Административная панель Seditio CMS доступна по адресу ваш_домен/admin (или index.php?module=admin) для пользователей, входящих в группу «Администраторы» (по умолчанию группа с ID = 5). Доступ к разделам панели разграничивается стандартной системой прав (ACL).
Двухпанельная структура интерфейса
Интерфейс панели администратора разделен на две основные функциональные области:
- Сайдбар (Левая боковая панель / Sidebar): Имеет темное оформление. В верхней части выводится аватар текущего администратора и приветствие (например, «Hi, Amro»). Ниже расположен вертикальный список ссылок на главные разделы управления.
- Основное содержимое (Правая часть / Main Content): Здесь отображаются рабочие формы, списки элементов, таблицы статистики.
- Верхнее горизонтальное меню: Располагается прямо над основной областью контента. В левой части выводятся «хлебные крошки» (навигационная цепочка / breadcrumbs, например:
Administration panel > HomeилиAdministration panel > Configuration), а также кнопка быстрого перехода на сайтGo to site. В правой части находятся ссылки на профиль администратора (Profile), личные файлы (My files), количество непрочитанных ЛС (No private messages) и кнопку выхода (Logout).
Динамическая структура сайдбара
Сайдбар Seditio не является жестко зафиксированным: установленные модули и плагины могут динамически добавлять в него собственные пункты и раскрывающиеся подразделы.
При сборке страницы админки загрузчик /system/core/admin/admin.header.php сканирует каталоги активных компонентов и ищет в них файлы описания меню:
- Для модулей:
/modules/{имя_модуля}/admin/{имя_модуля}.admin.menu.php - Для плагинов:
/plugins/{имя_плагина}/admin/{имя_плагина}.admin.menu.php
Этот файл должен возвращать ассоциативный массив конфигурации меню. Если файл найден и у пользователя есть права на просмотр компонента, его пункт автоматически встраивается в сайдбар. Все пункты сортируются по ключу order (по возрастанию), а при совпадении — по алфавиту названия.
Пример 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).
Подразделы конфигурации ядра (o=core)
Ядро системы разбито на строго определенные категории настроек:
- Main setup (Основные настройки): Глобальные параметры сайта (название, описание, e-mail администратора, скин сайта по умолчанию, язык интерфейса по умолчанию, типы контента).
- Time and date (Время и дата): Форматы отображения даты и времени по всему сайту, часовой пояс сервера и пользователей.
- Skins (Скины): Настройка тем оформления (основной скин сайта, скин панели администратора).
- Languages (Языковые пакеты): Настройка доступных локализаций на сайте.
- Menu slots (Слоты меню): Глобальные текстовые области (слоты) для ввода HTML/JS-кода сквозных блоков сайта (например, кодов баннеров, линий верха и низа сайта, навигационных списков меню).
- Images (Изображения): Конфигурация обработки картинок (библиотека GD, качество сжатия jpeg/webp, максимальные и минимальные размеры загружаемых картинок).
- Plugins (Плагины): Глобальные параметры для работы расширений (например, выбор текстового редактора по умолчанию).
- HTML Meta (HTML Мета-теги): Настройка шаблонов для генерации тега заголовка браузера (
<title>) для различных разделов сайта с использованием динамических макросов (плейсхолдеров{MAINTITLE}— имя сайта,{SUBTITLE}— подзаголовок сайта,{TITLE}— заголовок текущей страницы/раздела). Позволяет задать индивидуальные шаблоны вывода для главной страницы, форумов, галереи, PFS и плагинов. - Home page (Главная страница): Настройка SEO-параметров исключительно для главной страницы сайта. Здесь задаются: Homepage title (заголовок главной страницы), Homepage meta description (описание сайта для поисковых систем) и Homepage meta keywords (ключевые слова сайта). Все эти параметры являются опциональными и используются поисковыми роботами для индексации главной страницы.
Конфигурация модулей и плагинов (o=module / o=plug)
Каждый установленный модуль или плагин может иметь свои параметры. Они считываются из его .setup.php файла при установке и записываются в таблицу базы данных sed_config.
В интерфейсе редактирования настроек администратору доступны две полезные функции:
- Сбросить к значениям по умолчанию (Reset): Сбрасывает настройки компонента к исходным значениям, прописанным разработчиком в файле setup.
- Добавить недостающие параметры (Add missing parameters): Если вы обновили плагин или модуль до новой версии, где появились новые настройки, эта кнопка просканирует setup-файл и добавит новые опции в базу данных без необходимости переустановки компонента.
3.3. Управление модулями и плагинами
В Seditio разделы «Модули» (m=modules) и «Плагины» (m=plug) служат для инсталляции, контроля состояния и быстрого администрирования расширений.
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 / Иконка стрелочки): Быстрый переход в публичный раздел данного модуля на сайте.
2. Панель управления плагинами (m=plug)
Раздел устроен аналогично панели модулей и выводит список всех плагинов из папки /plugins/:
- Название и описание: Иконка, название плагина и краткое описание его функционала. При переходе по ссылке открывается карточка плагина со списком его файлов и хуков.
- Код (Code) и Версия (Version): Системный идентификатор плагина (например,
comments,tags,sedcaptcha) и его текущая версия. - Статус (Status):
Running(Работает) — плагин полностью активен.Paused(Приостановлен) — плагин отключен.Partially running(Работает частично) — часть хуков/частей плагина активна, часть временно отключена.Not installed(Не установлен) — плагин готов к установке.
- Инструменты быстрого действия:
- Настройки (Configuration / Иконка шестеренки): Переход в форму детальной конфигурации плагина (если плагин регистрирует свои настройки).
- Права (Rights / Иконка замочка): Быстрое редактирование прав доступа (ACL) для плагина.
- Открыть (Open / Иконка стрелочки): Быстрый переход к странице плагина на сайте (доступно для плагинов, имеющих самостоятельный раздел с хуком
standalone).
3. Матрица прав доступа (ACL) для компонентов (на примере Форумов)
При клике на иконку замочка («Права») напротив любого модуля или плагина администратор переходит в интерфейс настройки прав доступа (Rights).
На странице настройки прав для модуля (например, Rights / Forums для управления доступом к форуму) представлена таблица со следующей структурой:
- Группы пользователей (Groups): Полный список зарегистрированных в системе групп (например, Team members, Moderators, Inactive, Banned, Members, Guests и др.).
- Права группы (Rights per group / Иконка замка): Быстрый переход к индивидуальной матрице прав для выбранной группы.
- Матрица базовых прав: Для каждой группы выводятся три чекбокса с графическими индикаторами (их расшифровка находится внизу страницы в блоке Help):
- Read (Чтение / Иконка пустого листа): Разрешает пользователям этой группы просматривать разделы модуля (например, читать темы на форуме).
- Write (Запись / Иконка листа с карандашом): Позволяет пользователям создавать контент (писать сообщения, создавать новые темы, отправлять комментарии).
- Administration (Администрирование / Иконка молнии): Предоставляет группе административные и модераторские права внутри этого модуля (например, возможность удалять и переносить чужие темы на форуме).
- Аудит изменений (Set by): Отображает имя администратора, который в последний раз редактировал или сохранял права для этой группы (например, Amro). Это позволяет отслеживать, кто именно вносил изменения в настройки безопасности.
- Быстрый переход (Open): Зеленая стрелочка для открытия текущих настроек группы.
После настройки чекбоксов администратор нажимает кнопку «Обновить» (Update) внизу таблицы для применения изменений в БД.
3.4. Управление пользователями и правами групп (User Groups & ACL)
Раздел «Пользователи» (admin.php?m=users) предназначен для ведения списков групп пользователей, настройки их базовых параметров и полного разграничения прав доступа (ACL — Access Control List) ко всем системным ресурсам ядра, модулей и плагинов.
1. Интерфейс списка групп пользователей (User groups)
На этой странице администратор видит список всех существующих групп пользователей:
- Идентификатор (#ID): Системный ID группы в базе данных. Некоторые ID зарезервированы ядром Seditio:
5— Team members (Члены команды / Администраторы).6— Moderators (Модераторы).4— Members (Зарегистрированные пользователи).3— Banned (Заблокированные пользователи).2— Inactive (Неактивные / Ожидающие активации).1— Guests (Гости / Незарегистрированные посетители).
- Название группы (Groups): Имя группы (например, Team members, Moderators, Russian team).
- Участники (Members): Общее количество пользователей, добавленных в эту группу.
- Основная группа (Main): Количество пользователей, у которых данная группа выбрана в качестве основной (определяет скин, права и отображение роли пользователя по умолчанию).
- Флаги состояния:
Enabled(Yes/No) — активна ли группа.Hidden(Yes/No) — скрыта ли группа от обычных пользователей в списках.
- Права (Rights / Иконка замочка): Ссылка на глобальную матрицу прав для этой группы пользователей.
2. Глобальная матрица прав группы (на примере Rights: Team members)
При переходе по иконке замочка («Права») напротив нужной группы открывается полная таблица настроек доступа ко всем разделам системы:
- Разделы ядра (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отвечает за перевод формы обратной связи).
Администратор может переключать глобальный язык сайта по умолчанию в разделе конфигурации. Если на сайте включена мультиязычность, Seditio автоматически считывает языковые предпочтения из профиля пользователя (поле user_lang) или его текущей сессии и подгружает соответствующий языковой пакет.
3.6. Управление словарями и экстраполями (CCK / Extra Fields, m=dic)
Раздел «Словари» (admin.php?m=dic) в Seditio — это мощный визуальный конструктор базы данных (аналог CCK в Drupal или Extra Fields в Cotonti). Он позволяет администратору расширять стандартную структуру таблиц базы данных (страниц pages, пользователей users, разделов форума и т.д.), добавляя новые поля прямо из панели управления без необходимости писать SQL-запросы или использовать phpMyAdmin.
Конструктор базируется на двух системных таблицах базы данных:
sed_dic(Словари): Содержит мета-описания самих полей (системный код, заголовок, тип данных, целевую таблицу БД, параметры валидации).sed_dic_items(Элементы словаря): Содержит варианты значений (термины/элементы) для конкретного словаря.
Ключевая концепция и архитектурное отличие Seditio:
Важной особенностью Seditio является независимость и гибкость использования этих таблиц. Сами справочники (описанные в sed_dic) могут как использоваться в качестве экстраполей (физических колонок в таблицах БД), так и выступать автономными справочниками данных. При этом использование дочерних элементов из sed_dic_items зависит от типа поля:
- Использование без элементов (
sed_dicбезsed_dic_items): Если экстраполе является простым текстовым полем ввода (input), числовым полем или полем длинного текста (textarea/WYSIWYG), то создается только запись в таблицеsed_dic. Задействовать дочерние элементы вsed_dic_itemsне требуется, так как пользователь будет вводить произвольный текст или число вручную. - Использование с элементами (
sed_dic+sed_dic_items): Если поле ввода требует выбора из предустановленного списка (например, выпадающий списокSelectbox, переключателиRadioboxили множественный выбор), то в таблицеsed_dic_itemsсоздаются соответствующие термины (варианты выбора). Каждый элемент имеет свой ключ и текстовое описание (например, для словаря «Цвет автомобиля» элементами будут:red: Красный,blue: Синий). Seditio использует эти записи для автоматического рендеринга выпадающих списков в формах.
Как работает механизм словарей (экстраполей):
- Создание словаря (
sed_dic): Администратор создает новый словарь, указывает его заголовок, системный код (который станет физическим именем колонки в БД, напримерpage_priceилиuser_phone) и целевую таблицу (например, таблицу страницpages). - Заполнение элементов (
sed_dic_items) при необходимости: Если выбран тип поля «Список» (Selectbox/Radiobox), администратор переходит в управление элементами данного словаря и добавляет варианты выбора (термины). - Выбор типа поля и параметров: Задаются типы данных (строка
VARCHAR, текстTEXT, числоINT/DECIMAL, чекбоксTINYINT), при необходимости включается WYSIWYG-редактор, настраиваются валидация и значение по умолчанию.
Автоматическая интеграция в систему:
После сохранения нового поля Seditio автоматически производит следующие действия:
- Модификация БД: Выполняет SQL-запрос
ALTER TABLEк соответствующей таблице базы данных (например,sed_pages), добавляя физическую колонку с указанным типом и параметрами. - Генерация TPL-тегов: Создает набор тегов для использования в HTML-шаблонах оформления. Например, для поля
page_priceбудут доступны теги:{PAGE_PRICE}— выводит значение поля (для простых полей) или выбранный вариант из словаря.{PAGE_PRICE_TITLE}— выводит название (заголовок) поля.
- Формы ввода: Автоматически выводит новые поля в публичной части и админке при создании/редактировании страниц (в модуле
page) либо при заполнении профиля (в модулеusers).
3.7. Инструменты обслуживания базы данных и очистки кэша
Для обеспечения высокой скорости работы и технической исправности сайта в панели управления предусмотрены встроенные инструменты обслуживания (admin.php?m=cache и admin.php?m=manage).
Управление внутренним кэшем (m=cache)
В Seditio CMS используется гибридная система кэширования для минимизации нагрузки на базу данных и процессор. Движок разделяет кэшируемые данные на три независимых типа, каждым из которых администратор может управлять из панели администрирования:
Системный кэш (БД):
- Где хранится: В таблице базы данных
sed_cacheв виде сериализованных данных PHP. - Что кэшируется: Глобальные настройки конфигурации сайта (
sed_config), структура разделов и категорий страниц, списки и хуки установленных модулей и плагинов. - Управление: Кнопка «Очистить всё» (Purge) выполняет очистку таблицы
sed_cache. Это заставляет ядро Seditio заново считать структуру модулей, плагинов и категорий при следующем обращении к сайту и перезаписать кэш.
- Где хранится: В таблице базы данных
Кэш шаблонов (Файловая система):
- Где хранится: В каталоге
/datas/cache/на сервере в виде скомпилированных PHP-файлов шаблонов. - Что кэшируется: Сгенерированные HTML-шаблоны интерфейса сайта (TPL-файлы). Шаблонизатор XTemplate компилирует TPL-файлы в оптимизированный PHP-код для предотвращения повторного синтаксического анализа разметки при каждом обращении к странице.
- Управление: Кнопка «Очистить кэш шаблонов» (Purge TPL cache) вызывает функцию
sed_tplcache_clear(), удаляющую скомпилированные файлы из папки/datas/cache/. Рекомендуется использовать после ручного редактирования tpl-файлов для немедленного обновления интерфейса.
- Где хранится: В каталоге
Кэш ЧПУ (Файловая система):
- Где хранится: В файле
/datas/cache/sed_urls.php. - Что кэшируется: Скомпилированный массив правил роутинга и человекопонятных (SEF) URL для ядра, модулей и плагинов, отсортированный по позициям (приоритетам).
- Управление:
- Удалить кэш ЧПУ: Удаляет файл
sed_urls.phpс сервера. - Пересоздать кэш ЧПУ (Regenerate SEF URLs): Принудительно запускает функцию
sed_urls_generate(), которая заново сканирует правила роутинга, пересортировывает их по приоритетности и генерирует свежий файл кэша.
- Удалить кэш ЧПУ: Удаляет файл
- Где хранится: В файле
Инструменты управления БД (m=manage)
Здесь администратор может выполнять операции по очистке устаревших данных:
- Очистка неактивных сессий пользователей.
- Поиск и управление заблокированными IP-адресами (Бан-лист).
- Оптимизация таблиц базы данных MySQL для восстановления фрагментированного дискового пространства.
3.8. Логирование системных событий и аудит действий пользователей
Для контроля безопасности и отслеживания изменений в Seditio встроен системный журнал логов (admin.php?m=log).
Системный логгер сохраняет все события в таблицу базы данных sed_logger. Каждая запись содержит:
- Уникальный ID события.
- Дату и точное время совершения действия.
- IP-адрес пользователя (с возможностью быстрого перехода к поиску активности по данному IP).
- Имя (логин) пользователя, совершившего действие.
- Группу события (категорию лога).
- Детальный текстовый лог (описание действия или ошибки).
Группы системного журнала:
- Администрирование (
adm): Логирует действия в админ-панели — изменение глобальных настроек сайта, обновление конфигурации модулей, очистку кэша. - Пользователи (
usr): Фиксирует регистрации новых аккаунтов, изменения паролей, редактирование профилей, удаление пользователей, смену групп. - Безопасность (
sec): Логирует неудачные попытки авторизации, блокировки по IP, попытки несанкционированного доступа к закрытым разделам сайта. - Форумы (
for): Действия модераторов (удаление/перенос тем, редактирование сообщений). - Плагины (
plg): Установка, обновление и удаление плагинов, ошибки при вызове хуков. - Система (
sys): Системные предупреждения, ошибки выполнения скриптов, события обновления CMS.
Администратор с полными правами (isadmin) может просматривать журналы с постраничной разбивкой и фильтрацией по группам, а также полностью очищать журнал событий кнопкой «Очистить всё» (выполняет операцию TRUNCATE над таблицей логов).
Comments: (0)