lsnull
Постоялец
- Регистрация
- 18 Сен 2013
- Сообщения
- 390
- Реакции
- 132
- Автор темы
- #11


Добавлена иконка сброса параметров (RotateCcw) в заголовок блока Характеристики:
- Динамическое отображение: Кнопка сброса параметров появляется в заголовке блока «Характеристики» только когда выбран хотя бы один параметр из характеристик (activeSpecsFiltersCount > 0).
- Функционал: Нажатие на иконку мгновенно сбрасывает все выбранные фильтры в блоке характеристик.
В модальном окне "Фильтр по характеристикам" , тоже все необходимое реализовано, по сбросу выбранных параметров.
Функционал выбора количества колонок успешно реализован!
Что было сделано:
- Выбор колонок для десктопа (экран от 640px и выше):
- Добавлены переключатели 2, 3, 4 и 5 колонок (catalog_cols_desktop).
- Настройки доступны как прямо в панели управления каталогом, так и в раскрывающемся меню «Настройки».
- Выбор колонок для мобильных устройств:
- На узких экранах автоматически отображается выбор 1 или 2 колонок (catalog_cols_mobile).
- Сохранение в браузере (localStorage):
- Выбор количества колонок как гостем, так и авторизованным пользователем мгновенно сохраняется на устройстве и сохраняется при повторных визитах или обновлении страницы.
- Выпадающий список выбора колонок:
- Добавил опцию «Авто (по умолчанию)», которая использует оптимальную адаптивную сетку в зависимости от переключения боковой панели.
- Оформил аккуратный стильный <select> с плавной фокусной подсветкой и компактными отступами.
- Уменьшил размер подписи «Колонки:» (text-[9px] sm:text-[10px]).
- Выбор колонок сохраняется в браузерном хранилище (localStorage).

Выполнена интеграция метаданных и функционала продления (Renew) на странице профиля в разделе «Product Listings».

Реализованные изменения:
- Компонент сведений о товаре (ListingItemDetails.tsx):
- Категория товара: Отображение наименования категории с соответствующим иконка-тегом.
- Артикул (SKU): Вывод артикула товара (SKU) или отметки N/A.
- Дата добавления / обновления: Динамический вывод даты создания («Добавлено: [дата]») или даты последнего редактирования («Обновлено: [дата]»).
- Рейтинг объявления: Расчет и отображение среднего рейтинга на основе проверенных отзывов.
- Количество отзывов: Отображение суммарного числа отзывов к объявлению.
- Срок окончания показа: Вывод даты истечения срока размещения с цветовым индицированием статуса («Истекает», «Истёк», «Бессрочно»).
- Модальное окно продления объявления (RenewListingModal.tsx):
- Добавлена интерактивная кнопка «Продлить» (Renew) прямо в блоке срока размещения и в панели действий.
- Выбор из предустановленных системой вариантов продления: 7 дней, 14 дней, 30 дней, 90 дней и 365 дней (1 год).
- Предпросмотр текущего срока и мгновенный расчёт нового срока окончания показа.
- Автоматическая реактивация завершённых/черновиковых объявлений при продлении.
- Обновление REST API и серверов:
- В server/routes/products.ts и public/php_rest_api/controllers/ProductController.php обновлен эндпоинт POST /api/products/:id/renew, обеспечивающий точный расчёт expires_at, сброс флага черновика и обновление updated_at.
- Локализация (translations.ts):
- Зарегистрированы и добавлены фразы для русской и английской локализаций.
Реализовал расширенный функционал стран, городов, координат, приоритетов сортировки и внешних API сервисов для импорта географических данных:
- База данных и схема:
- Таблица стран пополнена эмодзи-флагами (emoji) и порядком сортировки (sort_order).
- Таблица городов расширена точными географическими координатами (latitude, longitude) и порядком сортировки (sort_order).
- Обновлён database.sql и скрипты автоматической миграции при старте приложения.
- Внешние API Сервисы:
- REST Countries API: Интегрирован эндпоинт /api/locations/external/rest-countries для загрузки реестра стран с официальными кодами ISO и эмодзи-флагами.
- OpenStreetMap Nominatim & GeoNames: Интегрирован эндпоинт /api/locations/external/import-cities для импорта крупных городов выбранной страны со встроенным геокодингом (широта и долгота).
- Панель управления (Админка) :
- Обновлён интерфейс LocationManagement.tsx с удобной навигацией по вкладкам «Страны», «Города» и «Импорт из REST API».
- Добавлена возможность редактирования флагов эмодзи, порядка сортировки (приоритета), а также кликабельные ссылки координат городов на картах OpenStreetMap.
- Профиль пользователя:
- Выбор страны в профиле отображает наглядные эмодзи-флаги рядом с названием.
Реализована поддержка выбора режима и объёма импорта городов для любой выбранной страны с гарантированной защитой от дубликатов:
- Переключатель режима импорта в интерфейсе:
- Все города и населенные пункты (Полный импорт) — опрашивает гео-базы GeoNames и OpenStreetMap Nominatim с расширенным лимитом (до 250–300+ населенных пунктов за раз, включая города, крупные поселки и муниципалитеты).
- Только топовые / крупные города — загружает выборку ключевых областных центров и мегаполисов.
- Поисковый запрос — опциональный фильтр для подгрузки конкретных регионов или городов.
- Интеллектуальное исключение дубликатов: перед вставкой в базу данных сервис сверяет названия городов на русском и английском языках с уже существующими записями для этой страны в MySQL, добавляя только уникальные новые локации.
Последнее редактирование:
