# Структура сайта

Управление структурой меню сайта через Dev Tools.

## Обзор

Структура сайта определяет навигационное меню, которое отображается:
- В десктопной шапке сайта
- В мобильном горизонтальном меню
- В боковом меню (sidebar)

Все меню синхронизированы и используют единый массив из `config/site.php`.

## Доступ

1. Откройте сайт на localhost
2. Нажмите на шестеренку слева (Dev Tools)
3. Выберите **Структура**

## Функции

### Просмотр структуры

При открытии раздела отображается дерево меню:
- Верхний уровень - основные разделы
- Вложенные элементы - подразделы (дропдаун в шапке)

### Добавление пункта

1. Нажмите **Добавить пункт**
2. Заполните:
   - **Название** - текст для меню
   - **URL** - адрес страницы (например: `/uslugi/novaya-usluga`)
   - **Родитель** - выберите раздел для вложенности или "Верхний уровень"
   - **Создать страницу** - автоматически создаст страницу в БД
3. Нажмите **Сохранить**

### Редактирование пункта

1. Нажмите иконку карандаша у пункта
2. Измените название или URL
3. Нажмите **Сохранить**

### Удаление пункта

1. Нажмите иконку крестика у пункта
2. Подтвердите удаление

**Важно:** При удалении родительского пункта удаляются все его дочерние элементы.

## Структура данных

Меню хранится в `config/site.php`:

```php
'menu' => [
    [
        'title' => 'Уборка',
        'url' => '/uslugi',
        'children' => [
            ['title' => 'Срочная', 'url' => '/uslugi/srochnaya-uborka'],
            ['title' => 'Генеральная', 'url' => '/uslugi/generalnaya-uborka'],
        ],
    ],
    [
        'title' => 'Цены',
        'url' => '/ceny',
    ],
],
```

## API

### GET /api/structure.php

Получить текущую структуру меню.

**Ответ:**
```json
{
    "success": true,
    "menu": [...]
}
```

### POST /api/structure.php

Добавить или изменить пункт меню.

**Параметры:**
```json
{
    "title": "Название",
    "url": "/url-stranitsy",
    "parentIndex": -1,
    "createPage": true,
    "editIndex": null,
    "editChildIndex": null
}
```

- `parentIndex`: `-1` для верхнего уровня, или индекс родителя
- `createPage`: создать страницу в БД
- `editIndex`: индекс редактируемого пункта (null для добавления)
- `editChildIndex`: индекс дочернего пункта (если редактируется дочерний)

### DELETE /api/structure.php

Удалить пункт меню.

**Параметры:**
```json
{
    "index": 0,
    "childIndex": null
}
```

- `index`: индекс пункта верхнего уровня
- `childIndex`: индекс дочернего пункта (null для удаления родителя)

## Ограничения

- Максимальная вложенность: 2 уровня (родитель → дети)
- URL должен начинаться с `/`
- Страницы не удаляются автоматически при удалении пункта меню

## Рекомендации

1. **URL-адреса**: Используйте транслитерацию (`/uborka-kvartir`, не `/уборка-квартир`)
2. **Создание страниц**: Отмечайте "Создать страницу" для новых разделов
3. **Порядок**: Пункты добавляются в конец списка. Для изменения порядка редактируйте `config/site.php` вручную
