2026-07-10 13:52:01 +04:00
|
|
|
|
## 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.
|
2026-07-05 04:23:47 +04:00
|
|
|
|
# 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 связки.
|