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`
]]">Очень рекомендую, когда ведете разработку и меняете параметры вызова сниппета, очищайте кэш картинок, для этого я специально кнопку в админке сделал
                Не работает внутри чанка. 
Рабочая конструкция
<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`
]]">
                Здравствуйте. Обязательно займусь доработкой, но в ноябре.            
                    
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                    
             
                    
                    
                








