Выбор города
This commit is contained in:
@@ -87,6 +87,46 @@ storage/
|
||||
- Темы: `public/store/view/theme/`
|
||||
- Языковые файлы расширений: `public/admin/language/ru-ru/extension/`
|
||||
|
||||
## Модальные окна и UI
|
||||
|
||||
### Модалки (modal.create)
|
||||
Система модальных окон реализована в `public/store/view/theme/dominik/assets/js/script.js` (объект `modal`, строка 64).
|
||||
|
||||
**Вызов модалки с HTML-контентом:**
|
||||
```js
|
||||
modal.create({
|
||||
modal: '<p>Содержимое окна</p>', // HTML-контент (обязателен)
|
||||
title: 'Заголовок окна', // опционально
|
||||
width: 400, // опционально, ширина в px
|
||||
align: 'top', // опционально, прижать к верху
|
||||
class: { // опционально, CSS-классы
|
||||
'modal-body': 'p-0',
|
||||
'modal-title': 'text-primary'
|
||||
},
|
||||
callback: { // опционально
|
||||
show: function() { ... } // колбек при показе
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
**Загрузка контента через AJAX (modal.load):**
|
||||
```js
|
||||
modal.load(url, data); // ожидает JSON-ответ с ключом 'modal'
|
||||
```
|
||||
|
||||
### Выбор города в шапке
|
||||
Выбор города реализован через:
|
||||
- **Контроллер:** `public/store/controller/common/city.php`
|
||||
- `index()` — отдаёт HTML-список зон (городов) для страны магазина
|
||||
- `save()` — сохраняет `city_id` в сессию (`session->data['city_id']`), возвращает JSON с именем города
|
||||
- **Шаблон списка:** `public/store/view/theme/dominik/template/common/city_list.twig`
|
||||
- **Логика в хедере:** `public/store/controller/common/header.php` (строки с `model_localisation_zone`)
|
||||
- Берёт `config_country_id` и `config_zone_id` из настроек магазина
|
||||
- Если в сессии есть `city_id` — используется он, иначе `config_zone_id`
|
||||
- Передаёт `current_city_name` и `city_list_url` в шаблон
|
||||
- **Кнопка в шапке:** `public/store/view/theme/dominik/template/common/header.twig` — после `{{ service_menu }}`
|
||||
- **JS-функция:** `citySelect(el)` в `script.js` — загружает список городов через AJAX, создаёт модалку, при клике сохраняет выбор в сессию и обновляет название на кнопке
|
||||
|
||||
## Полезные команды
|
||||
|
||||
```bash
|
||||
|
||||
Reference in New Issue
Block a user