Thumb3x: Современная обработка изображений для MODX 3
Thumb3x — это мощный и гибкий компонент для обработки изображений, созданный эксклюзивно для MODX 3.
Этот компонент был написан, чтобы заполнить пробел в экосистеме MODX 3, где практически отсутствуют современные и надежные инструменты для работы с изображениями.
Основные возможности
- В основе лежит высокопроизводительная библиотека Glide 3.0.1, обеспечивающая создание изображений «на лету». Поддерживает современные форматы изображений.
- Поддержка Источников файлов позволяет работать с изображениями из любого места. Все ключевые параметры (драйвер обработки, права доступа) вынесены в системные настройки.
- Поддержка не только нарезки и изменения размера, но и наложения фильтров, эффектов и водяных знаков через простые параметры в сниппете.
- Компонент ведет учет всех сгенерированных файлов в базе данных, что дает основу для аналитики и позволяет управлять кэшем через удобную таблицу в админке.
Документация тут: https://docs.ivan345.com/books/thumb3x/page/thumb3x-dokumentaciia
Компонент в modstore: https://modstore.pro/packages/photos-and-files/thumb3x
Компонент в extras.modx.com: https://extras.modx.com/package/thumb3x
Комментарии: 48
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
так как Glide 3.0 требует минимум php 8.1, а у второй версии минималка 7.2
Но на высоконагруженных проектах столкнулся с проблемой, что когда юзер создаёт новый коммент с картинкой, а другие видят это через вебсокеты, то сразу генерируют сотни запросов на конвертацию. Так как нет никакого механизма ограничения конкурентных запросов при холодном кэше, мы получим или кучу 500-х ошибок, или подвисший сервер.
Решаю это добавлением Varnish для запросов на картинки — он пропускает только 1 запрос на конвертацию, а всем остальным в очереди раздаёт уже результат из кэша.
Подскажите, планируется ли реализация поддержки pdf-файлов, чтобы было возможно создавать их миниатюры?
Соответственно автор может только своевременно обновлять либу, и никак не в силах предсказывать ее дальнейшее развитие
Папка core вынесена за пределы публичной части. Компонент создал в публичной части пустые файлы:
core/components/thumb3x/elements/snippets/snippet.thumb3x.php
core/components/thumb3x/elements/chunks/iskWafCaptchaFormTpl.tpl
Тогда PHP внутри пофиг откуда загружать код.
Параметр: &sourceId=`2` — id источника файлов, которое использует ваш TV
Очень рекомендую, когда ведете разработку и меняете параметры вызова сниппета, очищайте кэш картинок, для этого я специально кнопку в админке сделал
Рабочая конструкция
<img src="[[+tv.image:phpthumb=`w=830&h=822&zc=1&f=webp`]]" class=«card-img-top»
alt="[[+custom-alt-Image?]]">
Меняем на
TV называется image с id равному 3
1. Сделай настройку хранения миниатюр (assets/components/thumb3x/cache/), чтобы в место стандартного пути можно было указать свой (более короткий).
И в документации напиши вариант в виде модификатора, например: — так кстати работает, а вот так — тоже работает, только не меняет формат изображения
А вот такое:
Как то диковато выглядит — ну если только в шаблоне так что то можно вызывать, в чанах лучше как модификатор
Конечно же не нужно его использовать, если есть современные альтернативы
Конечно же не нужно его использовать, если есть современные альтернативы — нету адекватных пока, к сожалению. Thumb3x не плох, может качественнее сжимает, современные библиотеки и на этом все пожалуй) Путь сжатых изображений настроить нельзя (кому как, а мне это надо), базовую конструкцию типа — не до конца воспринимает, в webp не конвертирует, а надо бы (только из за этих 2х нюансов уже им не пользуюсь). Будет апдейт, который это поправит без проблем на него перейду.
Вот официальный сайт библиотеки если что.
glide.thephpleague.com/
Нет в планах.
Есть на русском языке документация:
docs.ivan345.com/books/thumb3x/page/thumb3x-dokumentaciia
подскажите как сделать правильно.
для категории миниатюры создаются, а на странице товара уменьшенное изображение вывести не могу.
пишет Недопустимый тип файла
что не так делаю???
<img class=«uk-cover» [[!Thumb3x?
&sourceId=`1`
&input=`[[+tv.image-dekor]]`
&options=`w=600&h=600`
&quality=`80`
&format=`webp`
]] alt="[[*longtitle]]" uk-cover uk-img >
А что выводит [[+tv.image-dekor]]? если просто вставить в чанк
<img class=«uk-cover» Недопустимый="" тип="" файла.="" alt=«Декор Дуб Карпентер темный» uk-cover="" uk-img="" style=«width: 6660px; height: 666px;»>
<----img src="[[!Thumb3x? &input=`path/to/image.jpg` &options=`w=600&h=600`]]" alt="">
в таком виде картинка появляется и в списке обработанных и на странице, но мне нужно в шаблон товара ее воткнуть и не понимаю как вставить
<img class=«uk-cover» uk-cover uk-img [[*image-dekor]]> вот так выводит.
если в снимет вставляю [[*image-dekor]] то пишет исходный файл не найден