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
Ivan K.
12 июля 2025, 21:26
modx.pro
2 370
+21

Комментарии: 28

Николай Савин
13 июля 2025, 11:44
0
Основана на лучшей из существующих PHP библиотек (насколько я знаю) Intervention Image — за это прям мое почтение. Почти наверняка будут вопросы — а почему бы не использовать уже встроенную в MODX либу phpthumb, зачем на ровном месте тащить что-то другое. Таков современный мир — микросервисы решают.
    Николай Савин
    13 июля 2025, 11:45
    0
    Может и для двоечки устроим праздник?
      Ivan K.
      13 июля 2025, 13:21
      +27
      Я готов и для MODX2 написать подобный компонент. Если этот комментарий наберет 15 плюсиков))
        Николай Савин
        14 июля 2025, 17:32
        +2
        К утру ждем компонент для двоечки
          Ivan K.
          15 июля 2025, 12:22
          +4
          Через несколько дней будет готов компонент и для второй ветки MODX. Glide тоже будет версии 2.
          так как Glide 3.0 требует минимум php 8.1, а у второй версии минималка 7.2
            Raimei
            15 июля 2025, 19:24
            0
            Просто шикарно. Очень ждём!
              Ivan K.
              16 июля 2025, 20:46
              +1
              Компонент для MODX2 готов и загружен в репозитории, жду модерации
        Николай Савин
        13 июля 2025, 11:46
        0
        Иван, а чего не пользуешься докой сообщества? Принципиально у себя размещаешь?
          Ivan K.
          13 июля 2025, 12:55
          0
          Из-за лени )) Мне удобней у себя размещать.
          Василий Наумкин
          13 июля 2025, 19:59
          +10
          league/glide — отличная штука, использую с самого начала Vesp, уже несколько лет.

          Но на высоконагруженных проектах столкнулся с проблемой, что когда юзер создаёт новый коммент с картинкой, а другие видят это через вебсокеты, то сразу генерируют сотни запросов на конвертацию. Так как нет никакого механизма ограничения конкурентных запросов при холодном кэше, мы получим или кучу 500-х ошибок, или подвисший сервер.

          Решаю это добавлением Varnish для запросов на картинки — он пропускает только 1 запрос на конвертацию, а всем остальным в очереди раздаёт уже результат из кэша.
            Андрей
            15 июля 2025, 22:18
            0
            Здравствуйте. Спасибо большое за компонент.
            Подскажите, планируется ли реализация поддержки pdf-файлов, чтобы было возможно создавать их миниатюры?
              Николай Савин
              17 июля 2025, 22:20
              0
              Так миниатюры создает не компонент, а подключенная библиотека Glide 3.0.1 — Она либо поддерживает работу с PDF, либо нет (я не смотрел)
              Соответственно автор может только своевременно обновлять либу, и никак не в силах предсказывать ее дальнейшее развитие
              Павлик Мышкин
              16 июля 2025, 16:16
              0
              Обнаружил что сниппет пустой
              Папка core вынесена за пределы публичной части. Компонент создал в публичной части пустые файлы:
              core/components/thumb3x/elements/snippets/snippet.thumb3x.php
              core/components/thumb3x/elements/chunks/iskWafCaptchaFormTpl.tpl
                Ivan K.
                16 июля 2025, 17:21
                0
                Посмотрю
                  Ivan K.
                  16 июля 2025, 17:41
                  +2
                  Загрузил новую исправленную версию в репозитории,
                    Дима Касаткин
                    17 июля 2025, 01:04
                    +1
                    А разве MODX3 поддерживает официально вынос core за пределы сайта? Вроде этот функционал задепрекейтили
                      Ivan K.
                      17 июля 2025, 08:12
                      0
                      Я не тестировал работу компонента если core вынесена за пределы публичной части.
                      Николай Савин
                      17 июля 2025, 22:21
                      +1
                      Вынос каталога core за пределы публичной части в MODX3 запрещен, из за особенностей работы Composer
                        Павлик Мышкин
                        18 июля 2025, 15:02
                        +1
                        Пардоньте за оффтоп, у меня сайт продолжал работать с некоторыми компонентами и не ругался ни на что, логи сайта пустые. Получается недостаточно хорошо запретили, типа «Нельзя, но если очень хочется, то можно.»
                          Николай Савин
                          18 июля 2025, 17:26
                          +1
                          Ну наверное внутри не было компонентов с использованием автозагрузки, это вполне возможно.
                          Тогда PHP внутри пофиг откуда загружать код.
                      Stepan
                      28 сентября 2025, 02:50
                      0
                      А куда кешируется все это дело и как очистить кеш?
                        Ivan K.
                        28 сентября 2025, 11:15
                        0
                        Пакеты->Thumb3x кнопка «Очистить кэш»
                        Александр
                        29 сентября 2025, 12:07
                        0
                        А как грузить TV?
                          Ivan K.
                          01 октября 2025, 16:41
                          0
                          Например, так:
                          <img src="[[!Thumb3x?
                              &sourceId=`2`
                              &input=`[[*TV_proba]]` 
                              &options=`w=520&h=520`
                          
                              &quality=`80`
                              &format=`webp`
                          
                          ]]">
                          Параметр: &sourceId=`2` — id источника файлов, которое использует ваш TV

                          Очень рекомендую, когда ведете разработку и меняете параметры вызова сниппета, очищайте кэш картинок, для этого я специально кнопку в админке сделал
                            Александр
                            13 октября 2025, 22:20
                            0
                            Не работает внутри чанка.
                            Рабочая конструкция
                            <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
                          Александр
                          13 октября 2025, 22:21
                          0
                          Меняем на
                            alex87.ru
                            16 октября 2025, 14:39
                            0
                            Иван, привет, хороший компонент. Предложения:
                            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`
                            
                            ]]">
                            Как то диковато выглядит — ну если только в шаблоне так что то можно вызывать, в чанах лучше как модификатор
                              Ivan K.
                              18 октября 2025, 17:08
                              0
                              Здравствуйте. Обязательно займусь доработкой, но в ноябре.
                              Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                              28