
Утилиты: Галерея
Массовая перегенерация миниатюр всех товаров.
Назначение
При загрузке в галерею MiniShop3 сразу создаёт миниатюры разных размеров. Утилита нужна, если вы сменили настройки превью или хотите пересобрать все миниатюры.
Когда использовать
- После изменения JSON
thumbnailsв Media Source - После миграции сайта на новый сервер
- После массового обновления изображений через FTP
- При повреждении или отсутствии миниатюр
- После обновления MiniShop3 с изменениями в обработке изображений
Интерфейс
Информационная панель
Текущее состояние галереи:
- Медиа-источник — название и ID источника файлов
- Товаров с изображениями — количество товаров, имеющих галерею
- Всего файлов — общее количество изображений в галереях
Настройки превью
Сворачиваемая секция выводит JSON каждого ключа из свойства thumbnails Media Source товаров (тот же источник, что у галереи). Пример вида: small: {"width":120,"height":120,"mode":"cover",…}.
Ключ превью в карточке
ms3_product_thumbnail_size (по умолчанию small) — имя ключа из thumbnails, которое подставляется в поле превью товара в менеджере. Сами размеры правятся в источнике файлов: Медиа → Источники файлов → свойство thumbnails. Если JSON пуст, используется fallback small 120×120.
Параметры обработки
| Параметр | Описание | По умолчанию |
|---|---|---|
| Товаров за шаг | Количество товаров, обрабатываемых за одну итерацию | 10 |
Рекомендации
- Для слабых серверов уменьшите значение до 5
- Для мощных серверов можно увеличить до 20-30
- Большие значения могут привести к таймауту
Процесс работы
Подготовка
- Проверьте настройки превью в системных настройках
- Убедитесь в наличии достаточного места на диске
- Рекомендуется выполнять в период низкой нагрузки
Запуск
- Нажмите кнопку "Перегенерировать превью"
- Процесс начнёт обработку товаров порциями
Отслеживание прогресса
- Индикатор показывает процент выполнения
- Отображается текущая итерация из общего количества
- Процесс можно прервать, закрыв страницу
Завершение
- После завершения появится сообщение с количеством обработанных товаров
- Нажмите "Сбросить" для подготовки к новому запуску
Техническая информация
Процессор
Утилита вызывает MiniShop3\Processors\Utilities\Gallery\Update (manager API или $modx->runProcessor() с полным именем класса).
API Endpoint
POST /api/mgr/utilities/gallery/updateПараметры:
limit— количество товаров за итерациюoffset— смещение (для пагинации)
Ответ:
{
"success": true,
"object": {
"updated": 10,
"total": 150,
"offset": 10,
"done": false
}
}Процесс обработки
Для каждого товара утилита:
- Получает список изображений из галереи
- Для каждого изображения:
- Читает оригинальный файл
- Генерирует миниатюры согласно настройкам
- Сохраняет превью в соответствующие директории
- Обновляет метаданные в базе данных
Хранение файлов
assets/images/products/
├── {product_id}/
│ ├── original.jpg # Оригинал
│ ├── small/ # Маленькие превью
│ │ └── original.jpg
│ ├── medium/ # Средние превью
│ │ └── original.jpg
│ └── large/ # Большие превью
│ └── original.jpgРешение проблем
Процесс прерывается
Симптом: Обработка останавливается на определённом проценте.
Решения:
- Уменьшите количество товаров за шаг
- Увеличьте
max_execution_timeв PHP - Проверьте логи ошибок сервера
Миниатюры не создаются
Симптом: После завершения превью отсутствуют.
Проверьте:
- Права на запись в директорию
assets/images/ - Наличие GD или ImageMagick на сервере
- Корректность настроек превью в системных настройках
Ошибка "Нет товаров"
Симптом: Нет товаров для обработки.
Причины:
- В каталоге нет товаров с изображениями
- Медиа-источник настроен неправильно
- Таблица галереи пуста
