Skip to content
ImageOptimizer
ImageOptimizer
Конвертация изображений в WebP/AVIF, responsive srcset, очередь и авто-inject picture на витрине MODX 3
  1. Компоненты
  2. ImageOptimizer

ImageOptimizer

ImageOptimizer конвертирует растровые изображения в WebP и AVIF, генерирует responsive-варианты по breakpoints и на OnWebPagePrerender оборачивает локальные <img> в <picture> с srcset. Чанки менять не нужно.

С чего начать: Быстрый старт.

Возможности

  • Статические варианты: файлы {basename}.{width}.webp рядом с оригиналом в media source
  • Очередь: таблица imageoptimizer_queue, обработка из админки, CLI или cron
  • Авто-inject: <picture> + WebP/AVIF srcset на выходе HTML-страницы
  • Upload hook: постановка в очередь при загрузке в File Manager
  • Vue-админка: очередь, настройки, проверка энкодеров на сервере

Системные требования

ТребованиеВерсия
MODX Revolution3.0+
PHP8.2+
GD или Imagickс поддержкой WebP
pdoToolsактуальная (зависимость transport)
VueTools≥ 1.1.2-pl (админка)

Расширения PHP: fileinfo, gd или imagick. AVIF опционально: avifenc или Imagick с AVIF.

Зависимости

  • pdoTools: обязательна при установке transport
  • VueTools: Vue 3 + PrimeVue для менеджерского интерфейса

Опционально

  • MiniShop3: типичная витрина; отдельного кода MS3 в пакете нет, inject работает на любом HTML

Установка

  1. Подключите репозиторий ModStore.
  2. Установите pdoTools и VueTools, если их ещё нет на сайте.
  3. Extras → Installer → найдите ImageOptimizerDownloadInstall.
  4. Убедитесь, что плагин ImageOptimizer включён.
  5. Настройки → Очистить кэш.

После install resolver создаёт namespace imageoptimizer, таблицу очереди, права доступа, пункт меню Компоненты → ImageOptimizer и системные настройки imageoptimizer_*.

Сборка transport из исходников

Для разработчиков пакета: README на GitHub (npm run build:mgr, php _build/build.php).

Минимальный путь после установки

  1. Откройте Компоненты → ImageOptimizer → вкладка Server: хотя бы один WebP-энкодер «Доступен».
  2. Добавьте cron или обрабатывайте очередь вручную — Быстрый старт.
  3. Загрузите JPEG в File Manager или сделайте rebuild каталога.
  4. Нажмите Обработать очередь, дождитесь статуса done.
  5. Откройте страницу с <img src="assets/..."> и проверьте <picture> в исходном коде.

Быстрые ссылки

НужноДокумент
Первый запуск и cronБыстрый старт
Все ключи imageoptimizer_*Системные настройки
Авто-inject, skip, data-атрибутыАвто-inject и picture
Thumb3x, MS3, VueToolsСовместимость
Очередь и кнопки в менеджереАдминка
Bulk и crontabCLI и cron
Типовые вопросыFAQ
ДиагностикаРешение проблем

Архитектура

Плагин ImageOptimizer слушает события File Manager (OnFileManagerUpload, OnFileManagerFileCreate, OnFileManagerFileUpdate, OnFileManagerFileRemove), OnWebPagePrerender, OnSiteRefresh, OnCacheUpdate.

Сниппетов в пакете нет. Вся интеграция на витрине: авто-inject или ручные пути к вариантам на диске.

Термины

ТерминОписание
ВариантФайл WebP/AVIF с заданной шириной; width=0 = full-size, например hero.jpg.webp
BreakpointЦелевая ширина из imageoptimizer_breakpoints, например 768photo.768.webp
ОчередьСтроки в imageoptimizer_queue: path, format, width, status
InjectПодмена <img> на <picture> в HTML перед отдачей страницы
Workerimageoptimizer_process_queue: конвертация pending-задач (cron, CLI, кнопка в админке)

Репозиторий

Исходники и dev-документация: github.com/Ibochkarev/ImageOptimizer. Баги и предложения: Issues.