57 lines
2.7 KiB
Markdown
57 lines
2.7 KiB
Markdown
## CMS Navigation Integration
|
|
- Static pages with `showInHeader: true` may appear in header navigation automatically.
|
|
- Static pages with `showInFooter: true` may be grouped into footer sections using `footerGroup`.
|
|
- Social links remain footer-config driven and can coexist with CMS page groups.
|
|
- Navigation stays configuration-driven; no marketplace-specific page names are hardcoded in frontend.
|
|
# 11. Система навигации
|
|
|
|
## Назначение
|
|
Навигационная система управляет маршрутами витрины, меню и ссылками на основе bootstrap-конфигурации.
|
|
|
|
## Поведение системы
|
|
- Frontend строит маршруты из конфигурации pages и navigation.
|
|
- Языковой префикс маршрута задается локализационной конфигурацией.
|
|
- Для категорий/товаров используются конфигурируемые route templates.
|
|
|
|
## Обязательные JSON-свойства
|
|
- pages[].route.path
|
|
- pages[].id
|
|
- navigation.header или navigation.footer (минимум один набор)
|
|
|
|
## Опциональные свойства
|
|
- route.exact
|
|
- route.redirectTo
|
|
- navigation.icon
|
|
- navigation.order
|
|
- navigation.visible
|
|
|
|
## Строгие правила
|
|
- Маршруты страниц должны быть уникальны в рамках tenant.
|
|
- Ссылка меню должна ссылаться на существующий маршрут или валидный внешний URL.
|
|
- Нельзя хардкодить статические tenant-пути в компонентах.
|
|
|
|
## Пример navigation JSON
|
|
```json
|
|
{
|
|
"navigation": {
|
|
"header": [
|
|
{ "id": "nav-home", "label": "Главная", "route": "/", "order": 1 },
|
|
{ "id": "nav-catalog", "label": "Каталог", "route": "/catalog", "order": 2 }
|
|
],
|
|
"footer": [
|
|
{ "id": "nav-privacy", "label": "Политика", "route": "/privacy-policy", "order": 1 }
|
|
]
|
|
}
|
|
}
|
|
```
|
|
|
|
## Ответственность Frontend
|
|
- Строить меню и роутинг из конфигурации.
|
|
- Соблюдать локализацию маршрутов.
|
|
- Обрабатывать недоступные маршруты через fallback-страницу.
|
|
|
|
## Ответственность Backend
|
|
- Возвращать валидную карту маршрутов/навигации в bootstrap.
|
|
- Поддерживать актуальность ссылок на статические страницы.
|
|
- Контролировать tenant-специфичность навигации.
|