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
Комментарии: 28
Основана на лучшей из существующих 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`
]]">Как то диковато выглядит — ну если только в шаблоне так что то можно вызывать, в чанах лучше как модификатор
Здравствуйте. Обязательно займусь доработкой, но в ноябре.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.