Files
2026-07-27 12:58:44 +03:00

6.4 KiB

Демо-сайт

Назад к разделу «Модули»

Пакет demo_site устанавливает демонстрационную тему, связанный контент и рабочие модули. Его назначение — показать сборку страницы AVE.cms на живом примере, не смешивая демо с ядром и чистой установкой.

Основой всегда остаётся чистая core-сборка. Отдельной сборки движка с демо нет: один ZIP demo_site уже содержит проверенные архивы всех необходимых модулей и устанавливается через обычный раздел «Модули».

После установки готовый сайт доступен по адресу /demo. Главная страница проекта не подменяется. Ссылка на демо и полный состав установки показаны в разделе модуля.

Что устанавливается

Пакет создаёт шаблон сайта, две рубрики, поля, документы, двухуровневое меню, системный блок и медиафайлы. Дополнительно он устанавливает и включает модули:

  • поиск, вопросы и ответы, галереи, баннеры и опросы;
  • рейтинги, комментарии, взаимодействия и антиспам;
  • похожие материалы, RSS-каналы и контактные формы.

Если нужного модуля ещё нет, он будет установлен из пакета. Если на сайте уже есть такая же или более новая версия, установщик использует её. Более старая версия штатно обновляется с выполнением миграций. Вложенные ZIP после установки удаляются и не занимают место в рабочем модуле.

Опрос, галерея, FAQ, баннер, рейтинг, комментарии и похожие материалы выводятся рабочими тегами модулей, а не статическими HTML-макетами. Индексы поиска и похожих материалов строятся сразу после создания документов.

Обновление

Обновление модуля не создаёт второй комплект демонстрационных данных. Оно повторно синхронизирует принадлежащие пакету шаблон сайта, оформление рубрик и запросов, системные блоки, навигацию и демонстрационные медиафайлы.

Значения полей документов не перезаписываются. Тексты и данные, изменённые через редактор документов, сохраняются, а повреждённое или устаревшее оформление возвращается к текущей версии пакета.

Обратимое удаление

Каждая созданная пакетом сущность записывается в собственный ledger: шаблон, рубрика, поле рубрики и документ. Удаление опирается только на этот список и не пытается угадывать демо-данные по названию или alias.

В разделе модуля можно отдельно проверить и удалить:

  • тему;
  • демонстрационный контент;
  • весь пакет.

Перед подтверждением сервер заново строит состав операции и выдаёт короткоживущий preflight-токен. Токен связан с пользователем, типом операции и точным хешем ledger. Если между просмотром и подтверждением состав изменился, удаление будет отклонено.

Сущности удаляются в порядке зависимостей: данные модулей, документы, поля, рубрики, медиа и шаблоны. Если на демонстрационный шаблон ссылается внешний контент, ссылки переводятся на базовый шаблон, а не остаются повреждёнными.

Подключённые модули при удалении демо не деинсталлируются: после запуска сайта в них уже могут находиться реальные комментарии, голоса и обращения. Удаляются только созданные демо-пакетом коллекции, профили и записи.

Права view_demo_site и manage_demo_site разделяют просмотр состава и удаление. Текущая тема и наполнение пакета могут меняться между сборками; ledger и preflight являются стабильной границей безопасного жизненного цикла.

Готовые сайты

Та же схема подходит не только для демо. В одном ZIP можно поставить готовый новостной сайт, блог, корпоративный сайт или отраслевой каталог: пакет объявляет зависимые модули, создаёт структуру контента через ContentPackageWriter, записывает свои сущности в ledger и показывает итог установки человеку.

Для подключения модулей используйте PackageModuleProvisioner. Не вызывайте SQL-миграции другого модуля напрямую: provisioner сохраняет штатный lifecycle, порядок зависимостей и состояние реестра модулей.