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
Техническая поддержка MODX
Сайт лежит, тормозит или остался без разработчика?
Переезд с MODX 2 на 3, PHP 7 на 8, скорость и безопасность. Поддержка со сроками и ответственностью, а не совет в чате.
Подробнее
Реклама
Комментарии: 51
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
так как 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]] то пишет исходный файл не найден
Использование водяного знака подразумевает отсутствие возможности скачать исходный файл без WM, однако, по пути сгенерированного изображения легко понять где лежит исходник. То есть, если исходное изображение находится по адресу:
То путь к сгенерированному будет выглядеть так:
Соответственно, можно легко понять, где лежит картинка без водяного знака в исходном качестве.
В pThumb например, есть параметр pthumb.ptcache_images_basedir, с помощью которого можно исключить часть пути к исходному изображению при кешировании.
Для вышеописанного примера, если в pthumb.ptcache_images_basedir прописать images/products, то URI результирующего изображения будет:
И тут уже гораздо сложнее понять расположение исходника.
Коротко теперь можно менять пути кэша.
Если задача — действительно закрыть доступ к изображениям без водяного знака, разместите оригиналы вне корня сайта: создайте «Источник файлов» с базовым путём за пределами публичной директории (например {core_path}storage/images/) и укажите его в настройке thumb3x.source_id. Thumb3x читает файлы через файловую систему, а не по HTTP, поэтому обработка продолжит работать, а наружу будет отдаваться только папка кэша — уже с водяным знаком.