59 lines
2.6 KiB
Markdown
59 lines
2.6 KiB
Markdown
## CMS Upgrade
|
||
- Static pages now support unlimited bootstrap-driven entries under `staticPages`.
|
||
- Each page may define slug, visibility, header/footer/sitemap flags, icon, order, translations, HTML and SEO metadata.
|
||
- Frontend resolves pages dynamically from bootstrap instead of hardcoded page names.
|
||
- Header and footer may consume the same static page registry without duplicating page definitions.
|
||
# 12. Система статических страниц
|
||
|
||
## Назначение
|
||
Система статических страниц управляет юридическими и информационными страницами (о компании, политика, доставка, возврат) через конфигурацию.
|
||
|
||
## Поведение системы
|
||
- Список страниц и маршруты берутся из bootstrap/pages.
|
||
- Контент может храниться как HTML/Markdown/структурированный JSON.
|
||
- Frontend рендерит контент безопасно, с tenant-aware навигацией.
|
||
|
||
## Обязательные JSON-свойства
|
||
- page.id
|
||
- page.key
|
||
- page.route.path
|
||
- page.type = "static"
|
||
- page.content.source
|
||
|
||
## Опциональные свойства
|
||
- page.seoKey
|
||
- page.visible
|
||
- page.translations
|
||
- page.lastUpdated
|
||
|
||
## Строгие правила
|
||
- Запрещено хардкодить список статических страниц во frontend.
|
||
- Контент должен быть изолирован по tenant.
|
||
- HTML-контент должен проходить sanitation на frontend и/или backend.
|
||
|
||
## Пример JSON статической страницы
|
||
```json
|
||
{
|
||
"id": "page-privacy",
|
||
"key": "privacy-policy",
|
||
"type": "static",
|
||
"route": { "path": "/privacy-policy", "exact": true },
|
||
"content": {
|
||
"source": "cms",
|
||
"contentType": "html",
|
||
"value": "<h1>Политика конфиденциальности</h1><p>...</p>"
|
||
},
|
||
"visible": true
|
||
}
|
||
```
|
||
|
||
## Ответственность Frontend
|
||
- Рендерить статические страницы по конфигурации маршрутов.
|
||
- Безопасно обрабатывать HTML-контент.
|
||
- Поддерживать локализованные версии страницы.
|
||
|
||
## Ответственность Backend
|
||
- Поставлять tenant-specific статический контент.
|
||
- Поддерживать версионирование и аудит контента.
|
||
- Гарантировать валидность route/content связки.
|