Docs

Сайты и Page CMS

uticms.sites · verified 2026-07-11

Обзор

Scope
Feature-gated публичная CMS, резолвинг сайтов, layouts, профили, страницы, блоки и слоты

Ключевые понятия

Site Profile
Runtime-профиль, собранный из PHP SiteLayoutDriver и опционального JSON-overlay.
Layout Driver
Зарегистрированная реализация, определяющая ключ сайта, данные профиля по умолчанию, объявления меню и настройки внешнего вида.
Slot
Именованная область, обрабатываемая зарегистрированным handler'ом: CMS-страница, маршрут, Blade, redirect или view.

Структура

  • Site Domain
    • Modelapp/Models/Site/Site.php
    • Storageтаблицы sites из database/migrations/2026_06_22_130000_create_sites_tables.php
  • Rendering
    • Page Models
      • Page
      • PageTranslation
      • PageSection
    • Block Engineapp/Page и app/Services/Cms/Engine
    • Layout Engineapp/Services/Cms/Site/Layout
    • Profile Engineapp/Services/Cms/Site/Profile
  • Public Routesroutes/cms.php

Факты

  • SiteServiceProvider привязывает SiteResolverInterface к DefaultSiteResolver. authoritative
  • SiteProfileManager и JsonSiteProfileLoader предоставляют данные профиля; SiteLayoutBootstrap регистрирует layout contributors. authoritative
  • Зарегистрированные slot handlers: CMS page, route, Blade, redirect и view. authoritative
  • Публичные CMS-маршруты условно предоставляют трекинг открытий писем, переключение локали, главную, отправку контактной формы, sitemap и fallback страницы. authoritative
  • Fallback PageController регистрируется только при включённых feature flags public_routes и page_cms. authoritative
  • Обычный web-маршрут главной используется только когда CMS не настроена на владение home-маршрутом. authoritative
  • CmsEngineServiceProvider регистрирует рендеринг блоков, маппинг данных блоков, editor repository, рендеринг Editor.js, резолвинг плейсхолдеров и авторизацию draft-preview. authoritative

Инструкции

Add Layout Capability

  1. реализовать SiteLayoutDriver или contributor
  2. зарегистрировать contributor через существующий layout bootstrap path
  3. объявить defaults профиля, меню, настройки внешнего вида и необходимые views
  4. проверить резолвинг профиля и целевые публичные feature flags

Правила

Architectural rule

Считайте PHP layout слоем объявления/значений по умолчанию, а JSON — опциональным слоем переопределения.

Architectural rule

Объявляйте меню и настройки внешнего вида layout'а через контракт SiteLayoutDriver, а не через недокументированные JSON-ключи.