UnicoreCMS

Модули и темы

Что такое расширение, где оно лежит и что умеет

Расширение — папка в modules/ или themes/ в корне установки. Ядро находит её само, править код CMS не нужно. Модуль добавляет функциональность: свои таблицы, страницы, права, обработчики событий. Тема меняет внешний вид сайта или панели.

Чем модуль отличается от темы

МодульТема
ЗачемНовая функциональностьНовая вёрстка
Серверная частьЕсть: контроллеры, сущности, задачиНет
Сколько работает сразуСколько угодноОдна на сайт и одна на панель
Свои страницыТолько внутри /mod/<id>Любые, в том числе вместо страниц ядра

Тема — не цветовая схема. Светлая и тёмная схемы есть в ядре и к темам отношения не имеют: тема подменяет разметку, компоненты и палитру PrimeVue целиком.

Граница с ядром

Расширение общается с ядром только через пакет unicore-api. Прямых импортов из кода сервера нет и быть не может: ядро поставляется собранным и обфусцированным, исходников сервера в поставке нет.

import { defineModule, Public, Permissions, CurrentUser, core } from 'unicore-api/server'

У контракта своя версия, отдельная от версии CMS. Модуль объявляет диапазон в поле unicoreApi, несовместимый модуль не загружается, а причина видна в админке.

Спрашивайте возможность, а не версию

capabilities().has('payments.credit') отвечает, умеет ли ядро конкретную вещь. Список возможностей растёт вместе с контрактом, поэтому проверка возможности переживает обновления лучше, чем сравнение номеров версий.

Готовые модули

Модули живут в отдельном репозитории — MCXTeam/UnicoreCMS-modules.

МодульЧто делает
ФормыФормы на сайте: заявки в команду, разбан, жалобы, баг-репорты, обратная связь
Команда проектаСтраница состава из служебных ролей и привилегий
Демо-модульКонтракт целиком: таблица, права, настройки, события, канал вебхука, слоты

Модули лежат там исходниками: серверную часть перед установкой нужно собрать. Как — написано в README репозитория, там же настройки и права каждого модуля.

Готовые темы

Темы живут в отдельном репозитории — MCXTeam/UnicoreCMS-themes.

ТемаСторонаЧто показывает
АврораСайтСвоя палитра, своя главная, свой компонент и строки
НуарСайтВторая тема сайта: подменяет главную и страницу доната
ГрафитПанельPreset PrimeVue и его палитра, подмена дашборда

Тему собирать не нужно — она состоит из исходников, которые собираются вместе с фронтом. Эти три темы учебные: они показывают механику слоя и годятся как заготовка для своей.

Куда смотреть дальше

Содержание