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

Системные настройки

Ключи в namespace imageoptimizer. В БД: imageoptimizer_{name}.

Где изменить: Компоненты → ImageOptimizer → Настройки или Система → Системные настройки (фильтр imageoptimizer).

Общие

КлючТипПо умолчаниюОписание
imageoptimizer_enabledboolean1Глобальный выключатель: очередь, конвертация, inject
imageoptimizer_cleanup_on_uninstallboolean0При uninstall удалить варианты на диске, таблицу очереди, HTML-кэш
imageoptimizer_disk_warn_gbnumber10Предупреждение в админке, если свободно меньше N ГБ

Конвертация и форматы

КлючТипПо умолчаниюОписание
imageoptimizer_convert_on_uploadboolean1Постановка в очередь при загрузке в File Manager
imageoptimizer_convert_on_upload_sync_timeoutnumber5Секунд синхронной конвертации сразу после upload
imageoptimizer_formatstextwebpФорматы через запятую: webp, avif
imageoptimizer_avif_enabledboolean0Отдельный флаг AVIF (дополнительно к formats)
imageoptimizer_qualitynumber82Fallback качества (1–100)
imageoptimizer_quality_jpegnumber82Качество для JPEG-источников
imageoptimizer_quality_pngnumber90Качество для PNG-источников
imageoptimizer_method_prioritytextcwebp,gd,imagickПорядок энкодеров; для AVIF также avifenc
imageoptimizer_reencode_if_unchangedboolean0Повторно ставить done-задачи при том же исходнике
imageoptimizer_preserve_exifboolean0Сохранять EXIF в выходных файлах
imageoptimizer_preserve_iccboolean1Встраивать ICC-профиль
imageoptimizer_max_memory_limittext512MВременное повышение memory_limit при конвертации

Responsive и варианты

КлючТипПо умолчаниюОписание
imageoptimizer_breakpointstext480,768,1024,1440,1920Ширины вариантов (px), CSV; пусто = только full-size
imageoptimizer_variant_patterntext{basename}.{width}.{ext}Имя файла; width=0 → image.jpg.webp
imageoptimizer_upscaleboolean0Варианты шире оригинала; при 0 такие задачи получают skipped
imageoptimizer_responsive_min_widthnumber320Брейкпоинты уже этой ширины не генерируются

Очередь и cron

КлючТипПо умолчаниюОписание
imageoptimizer_cron_limitnumber200Задач за один запуск cron/convert.php или кнопки Обработать очередь
imageoptimizer_stuck_minutesnumber30Сброс processingpending, если дольше N минут
imageoptimizer_retention_daysnumber30cron/prune.php удаляет done старше N дней; 0 = не чистить

Фронтенд (инъекция HTML)

КлючТипПо умолчаниюОписание
imageoptimizer_inject_frontendboolean1Обработка HTML на OnWebPagePrerender
imageoptimizer_inject_emailboolean0Зарезервировано; в текущей версии логика не реализована
imageoptimizer_html_cacheboolean1Кэш результата в core/cache/imageoptimizer/html/
imageoptimizer_max_html_sizenumber1048576Не обрабатывать HTML больше N байт (1 МБ)
imageoptimizer_default_sizestextarea(min-width: 1280px) 50vw, 100vwАтрибут sizes, если не задан на <img>
imageoptimizer_skip_classestextlazy,swiper-lazy,no-optimCSS-классы на <img> через запятую: пропуск
imageoptimizer_skip_src_patterntextthumb3xПодстрока в src: пропуск (URL Thumb3x)
imageoptimizer_respect_existing_srcsetboolean1Не оборачивать <img> с уже заданным srcset
imageoptimizer_respect_existing_pictureboolean1Не трогать <img> внутри <picture>
imageoptimizer_respect_existing_loadingboolean1Не перезаписывать атрибут loading
imageoptimizer_skip_lazy_first_imagesnumber0Первые N <img> на странице получают loading=eager

imageoptimizer_inject_email

Настройка есть в transport и lexicon, но код inject для писем не вызывает. Не включайте, ожидая <picture> в email.

Рекомендуемые пресеты

Каталог MiniShop3

imageoptimizer_enabled = 1
imageoptimizer_inject_frontend = 1
imageoptimizer_convert_on_upload = 1
imageoptimizer_formats = webp
imageoptimizer_breakpoints = 480,768,1024,1440
imageoptimizer_default_sizes = (max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw
imageoptimizer_skip_classes = lazy,swiper-lazy,no-optim,logo-icon

Блог с AVIF

imageoptimizer_formats = webp,avif
imageoptimizer_avif_enabled = 1
imageoptimizer_breakpoints = 768,1024,1920
imageoptimizer_default_sizes = (max-width: 768px) 100vw, 800px

Только bulk, без авто-HTML

imageoptimizer_inject_frontend = 0
imageoptimizer_convert_on_upload = 0

Конвертация через CLI и cron; в шаблонах — ручной <picture> (Авто-inject).

Большой каталог, щадящий cron

imageoptimizer_cron_limit = 50
imageoptimizer_html_cache = 1

Пропуски в разметке

html
<img src="assets/banner.jpg" data-imageoptimizer-skip alt="">
<img src="assets/logo.svg" class="no-optim" alt="">

Кастомизация без skip:

  • data-imageoptimizer-sizes — override sizes для этого img
  • data-imageoptimizer-fetchpriorityhigh или low для LCP

Подробнее: Авто-inject и picture.