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
Комментарии: 34
Основана на лучшей из существующих PHP библиотек (насколько я знаю) Intervention Image — за это прям мое почтение. Почти наверняка будут вопросы — а почему бы не использовать уже встроенную в MODX либу phpthumb, зачем на ровном месте тащить что-то другое. Таков современный мир — микросервисы решают.
Может и для двоечки устроим праздник?
Я готов и для MODX2 написать подобный компонент. Если этот комментарий наберет 15 плюсиков))
К утру ждем компонент для двоечки
Через несколько дней будет готов компонент и для второй ветки MODX. Glide тоже будет версии 2.
так как Glide 3.0 требует минимум php 8.1, а у второй версии минималка 7.2
так как Glide 3.0 требует минимум php 8.1, а у второй версии минималка 7.2
Просто шикарно. Очень ждём!
Компонент для MODX2 готов и загружен в репозитории, жду модерации
Иван, а чего не пользуешься докой сообщества? Принципиально у себя размещаешь?
Из-за лени )) Мне удобней у себя размещать.
league/glide — отличная штука, использую с самого начала Vesp, уже несколько лет.
Но на высоконагруженных проектах столкнулся с проблемой, что когда юзер создаёт новый коммент с картинкой, а другие видят это через вебсокеты, то сразу генерируют сотни запросов на конвертацию. Так как нет никакого механизма ограничения конкурентных запросов при холодном кэше, мы получим или кучу 500-х ошибок, или подвисший сервер.
Решаю это добавлением Varnish для запросов на картинки — он пропускает только 1 запрос на конвертацию, а всем остальным в очереди раздаёт уже результат из кэша.
Но на высоконагруженных проектах столкнулся с проблемой, что когда юзер создаёт новый коммент с картинкой, а другие видят это через вебсокеты, то сразу генерируют сотни запросов на конвертацию. Так как нет никакого механизма ограничения конкурентных запросов при холодном кэше, мы получим или кучу 500-х ошибок, или подвисший сервер.
Решаю это добавлением Varnish для запросов на картинки — он пропускает только 1 запрос на конвертацию, а всем остальным в очереди раздаёт уже результат из кэша.
Здравствуйте. Спасибо большое за компонент.
Подскажите, планируется ли реализация поддержки pdf-файлов, чтобы было возможно создавать их миниатюры?
Подскажите, планируется ли реализация поддержки pdf-файлов, чтобы было возможно создавать их миниатюры?
Так миниатюры создает не компонент, а подключенная библиотека Glide 3.0.1 — Она либо поддерживает работу с PDF, либо нет (я не смотрел)
Соответственно автор может только своевременно обновлять либу, и никак не в силах предсказывать ее дальнейшее развитие
Соответственно автор может только своевременно обновлять либу, и никак не в силах предсказывать ее дальнейшее развитие
Обнаружил что сниппет пустой
Папка core вынесена за пределы публичной части. Компонент создал в публичной части пустые файлы:
core/components/thumb3x/elements/snippets/snippet.thumb3x.php
core/components/thumb3x/elements/chunks/iskWafCaptchaFormTpl.tpl
Папка core вынесена за пределы публичной части. Компонент создал в публичной части пустые файлы:
core/components/thumb3x/elements/snippets/snippet.thumb3x.php
core/components/thumb3x/elements/chunks/iskWafCaptchaFormTpl.tpl
Посмотрю
Загрузил новую исправленную версию в репозитории,
А разве MODX3 поддерживает официально вынос core за пределы сайта? Вроде этот функционал задепрекейтили
Я не тестировал работу компонента если core вынесена за пределы публичной части.
Вынос каталога core за пределы публичной части в MODX3 запрещен, из за особенностей работы Composer
Пардоньте за оффтоп, у меня сайт продолжал работать с некоторыми компонентами и не ругался ни на что, логи сайта пустые. Получается недостаточно хорошо запретили, типа «Нельзя, но если очень хочется, то можно.»
Ну наверное внутри не было компонентов с использованием автозагрузки, это вполне возможно.
Тогда PHP внутри пофиг откуда загружать код.
Тогда PHP внутри пофиг откуда загружать код.
А куда кешируется все это дело и как очистить кеш?
Пакеты->Thumb3x кнопка «Очистить кэш»
А как грузить TV?
Например, так:
Очень рекомендую, когда ведете разработку и меняете параметры вызова сниппета, очищайте кэш картинок, для этого я специально кнопку в админке сделал
<img src="[[!Thumb3x?
&sourceId=`2`
&input=`[[*TV_proba]]`
&options=`w=520&h=520`
&quality=`80`
&format=`webp`
]]">Параметр: &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
Рабочая конструкция
<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/), чтобы в место стандартного пути можно было указать свой (более короткий).
И в документации напиши вариант в виде модификатора, например:
А вот такое:
1. Сделай настройку хранения миниатюр (assets/components/thumb3x/cache/), чтобы в место стандартного пути можно было указать свой (более короткий).
И в документации напиши вариант в виде модификатора, например:
{$images | Thumb3x : "w=239&h=331&zc=1"} — так кстати работает, а вот так {$images | Thumb3x : "w=239&h=331&zc=1&f=webp"} — тоже работает, только не меняет формат изображенияА вот такое:
<img src="[[!Thumb3x?
&sourceId=`2`
&input=`[[*TV_proba]]`
&options=`w=520&h=520`
&quality=`80`
&format=`webp`
]]">Как то диковато выглядит — ну если только в шаблоне так что то можно вызывать, в чанах лучше как модификатор
Здравствуйте. Обязательно займусь доработкой, но в ноябре.
пишите что все пакеты старые, а как же pthumb? thumb3x лучше?
pthumb последний раз обновлялся 11 лет назад. Там даже нет поддержки PHP8, Composer Namespace и т.п.
Конечно же не нужно его использовать, если есть современные альтернативы
Конечно же не нужно его использовать, если есть современные альтернативы
pthumb последний раз обновлялся 11 лет назад. Там даже нет поддержки PHP8 — работает он с php 8, прямо сейчас работаю с ним на MODX 3.1.2 + PHP 8.2.
Конечно же не нужно его использовать, если есть современные альтернативы — нету адекватных пока, к сожалению. Thumb3x не плох, может качественнее сжимает, современные библиотеки и на этом все пожалуй) Путь сжатых изображений настроить нельзя (кому как, а мне это надо), базовую конструкцию типа
Конечно же не нужно его использовать, если есть современные альтернативы — нету адекватных пока, к сожалению. Thumb3x не плох, может качественнее сжимает, современные библиотеки и на этом все пожалуй) Путь сжатых изображений настроить нельзя (кому как, а мне это надо), базовую конструкцию типа
{$images | Thumb3x : "w=239&h=331&zc=1&f=webp"} — не до конца воспринимает, в webp не конвертирует, а надо бы (только из за этих 2х нюансов уже им не пользуюсь). Будет апдейт, который это поправит без проблем на него перейду. {$images | Thumb3x: «w=239&h=331&zc=1&f=webp»}Так попробуйте и все будет конвертировать (правильный ключ «fm»):
— не до конца воспринимает, в webp не конвертирует, а надо бы (только из за этих 2х нюансов уже им не пользуюсь). Будет апдейт, который это поправит без проблем на него перейду.
{$images | Thumb3x : "w=239&h=331&zc=1&fm=webp"}Вот официальный сайт библиотеки если что.glide.thephpleague.com/
Отлично. Ну еще проблему с путями решить и норм) Но судя по комментам о Thumb2x, картинки весят больше, чем после обработки pthumb — что тоже ставит новые библиотеки под вопрос, а лучше ли они. Пока pthumb выглядит поинтереснее, да и в принципе не сложно ему самостоятельный небольшой апдейт сделать, чтобы был заточен чисто по php 8+
Пока не лучше (если только по качеству картинки после ее сжатия, и может по силе сжатия — это не тестил (их размер после обработки)), смотрите другой мой комент.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.