phpthumb — Школа MODX
Изменение размера
Исходное изображение в 600х800 пикселей изменяем в 200х200 пикселей с помощью опций zc, far и iar
<img alt="" src="[[phpthumb? &input=`assets/img/phpthumb1.jpg` &options=`w=200,h=200`]]">
<img alt="" src="[[phpthumb? &input=`assets/img/phpthumb1.jpg` &options=`w=200,h=200,zc=C`]]">
<img alt="" src="[[phpthumb? &input=`assets/img/phpthumb1.jpg` &options=`w=200,h=200,far=C,bg=e2e2e2`]]">
<img alt="" src="[[phpthumb? &input=`assets/img/phpthumb1.jpg` &options=`w=200,h=200,iar=1`]]">
Прозрачность
Исходное изображение в 600х800 пикселей, где вместо неба прозрачный фон, формат изображения png. Преобразуем в миниатюру в 200х200 пикселей с сохранением прозрачности
<img alt="" src="[[phpthumb? &input=`assets/img/phpthumb4.png` &options=`w=200,h=200,f=png`]]">
Степень сжатия
<img alt="" src="[[phpthumb? &input=`assets/img/phpthumb1. jpg` &options=`w=200,h=200,far=C,bg=e2e2e2,q=1`]]">
<img alt="" src="[[phpthumb? &input=`assets/img/phpthumb1.jpg` &options=`w=200,h=200,far=C,bg=e2e2e2,q=50`]]">
<img alt="" src="[[phpthumb? &input=`assets/img/phpthumb1.jpg` &options=`w=200,h=200,far=C,bg=e2e2e2,q=95`]]">
Поворот изображения
<img alt="" src="[[phpthumb? &input=`assets/img/phpthumb1.jpg` &options=`w=200,h=200,zc=C,ra=45`]]">
<img alt="" src="[[phpthumb? &input=`assets/img/phpthumb1.jpg` &options=`w=200,h=200,zc=C,ra=-45`]]">
<img alt="" src="[[phpthumb? &input=`assets/img/phpthumb1.jpg` &options=`w=200,h=200,zc=C,ra=90`]]">
<img alt="" src="[[phpthumb? &input=`assets/img/phpthumb1.jpg` &options=`w=200,h=200,zc=C,ra=180`]]">
Изменение яркости
<img alt="" src="[[phpthumb? &input=`assets/img/phpthumb1.jpg` &options=`w=200,h=200,zc=C,fltr[]=brit|-255`]]">
<img alt="" src="[[phpthumb? &input=`assets/img/phpthumb1. jpg` &options=`w=200,h=200,zc=C,fltr[]=brit|-25`]]">
<img alt="" src="[[phpthumb? &input=`assets/img/phpthumb1.jpg` &options=`w=200,h=200,zc=C,fltr[]=brit|25`]]">
<img alt="" src="[[phpthumb? &input=`assets/img/phpthumb1.jpg` &options=`w=200,h=200,zc=C,fltr[]=brit|255`]]">
Изменение контрастности
<img alt="" src="[[phpthumb? &input=`assets/img/phpthumb1.jpg` &options=`w=200,h=200,zc=C,fltr[]=cont|-255`]]">
<img alt="" src="[[phpthumb? &input=`assets/img/phpthumb1.jpg` &options=`w=200,h=200,zc=C,fltr[]=cont|-25`]]">
<img alt="" src="[[phpthumb? &input=`assets/img/phpthumb1.jpg` &options=`w=200,h=200,zc=C,fltr[]=cont|25`]]">
<img alt="" src="[[phpthumb? &input=`assets/img/phpthumb1.jpg` &options=`w=200,h=200,zc=C,fltr[]=cont|255`]]">
Гамма-коррекция
<img alt="" src="[[phpthumb? &input=`assets/img/phpthumb1.jpg` &options=`w=200,h=200,zc=C,fltr[]=gam|0. 01`]]">
<img alt="" src="[[phpthumb? &input=`assets/img/phpthumb1.jpg` &options=`w=200,h=200,zc=C,fltr[]=gam|1.0`]]">
<img alt="" src="[[phpthumb? &input=`assets/img/phpthumb1.jpg` &options=`w=200,h=200,zc=C,fltr[]=gam|5.0`]]">
<img alt="" src="[[phpthumb? &input=`assets/img/phpthumb1.jpg` &options=`w=200,h=200,zc=C,fltr[]=gam|10`]]">
Насыщенность
<img alt="" src="[[phpthumb? &input=`assets/img/phpthumb1.jpg` &options=`w=200,h=200,zc=C,fltr[]=sat|0`]]">
<img alt="" src="[[phpthumb? &input=`assets/img/phpthumb1.jpg` &options=`w=200,h=200,zc=C,fltr[]=sat|-10`]]">
<img alt="" src="[[phpthumb? &input=`assets/img/phpthumb1.jpg` &options=`w=200,h=200,zc=C,fltr[]=sat|-50`]]">
<img alt="" src="[[phpthumb? &input=`assets/img/phpthumb1.jpg` &options=`w=200,h=200,zc=C,fltr[]=sat|-100`]]">
Водяные знаки
<img alt="" src="[[phpthumb? &input=`assets/img/phpthumb1. jpg` &options=`w=200,h=200,zc=C,fltr[]=wmi|assets/img/water.png|BR|50|5|5`]]">
<img alt="" src="[[phpthumb? &input=`assets/img/phpthumb1.jpg` &options=`w=200,h=200,zc=C,fltr[]=wmi|assets/img/water.png|C|50`]]">
<img alt="" src="[[phpthumb? &input=`assets/img/phpthumb1.jpg` &options=`w=200,h=200,zc=C,fltr[]=wmi|assets/img/water.png|*|50|5|5`]]">
<img alt="" src="[[phpthumb? &input=`assets/img/phpthumb1.jpg` &options=`w=200,h=200,zc=C,fltr[]=wmi|assets/img/water.png|C|50|||45`]]">
Скругление углов
<img alt="" src="[[phpthumb? &input=`assets/img/phpthumb1.jpg` &options=`w=200,h=200,zc=C,fltr[]=ric|15|15`]]">
<img alt="" src="[[phpthumb? &input=`assets/img/phpthumb1.jpg` &options=`w=200,h=200,zc=C,fltr[]=ric|50|50`]]">
<img alt="" src="[[phpthumb? &input=`assets/img/phpthumb1.jpg` &options=`w=200,h=200,zc=C,fltr[]=ric|100|100`]]">
<img alt="" src="[[phpthumb? &input=`assets/img/phpthumb1. jpg` &options=`w=200,h=200,zc=C,fltr[]=ric|50|15`]]">
phpthumbon документация MODX
- вебшкола MODX
- Блог
- Разработки MODX Revolution
- phpthumbon документация
Параметр | Описание | Значение |
---|---|---|
input | Путь к картинке которую нужно обработать |
|
options | Параметры для класса phpThumb (см. раздел Parameters). |
|
Системные настройки
Параметр | Описание | Значение |
---|---|---|
phpthumbon.images_dir | Папка, которая будет вырезаться из пути в кеш-директории |
|
phpthumbon.quality | Качество картинки по умолчанию |
|
phpthumbon. cache_dir | Имя папки с кешем |
|
phpthumbon.ext | Если на сжатие приходит картинка в неизвестном формате, то будет использоваться этот тип |
|
phpthumbon.noimage | Путь к картинки с изображением «картинка не существует» |
|
phpthumbon. queue | Активация поддержки очередей |
|
phpthumbon.queue_classpath | Путь к файлу с классом QueueThumb |
|
phpthumbon. error_mode | Правила обработки ошибочных картинок |
|
phpthumbon.noimage_cache | Папка с закешированными noimage файлами |
|
phpthumbon.total_queue | Число обрабатываемых заданий из очереди за 1 раз |
|
phpthumbon.make_cachename | Сниппет который может подменить дефолтные правила формирования кеш имен картинок |
|
Переезд в Вену. Осень-зима Articles. Создание блога в MODx Revolution
Please enable JavaScript to view the comments powered by Disqus.
Как быстро доставлять изображения с помощью Modx, используя PhpThumbOn и WebP — учебные пособия
carlo_13
#1
Привет всем, это краткое руководство по быстрой доставке изображений с помощью Modx. Много раз я обращался за помощью на форумы, и поэтому я подумал, что было бы неплохо, если бы я мог помочь и другим.
Прежде чем мы начнем: Если вы читаете это из будущего, формат Avif, вероятно, захватил Интернет. На момент написания этого руководства Safari еще не поддерживал изображения Avif, поэтому сейчас нет особого смысла его использовать. Но если вы хотите использовать Avif вместо WebP, реализация должна быть такой же. Также имейте в виду, что для этого вам, вероятно, потребуется использовать как минимум php 8.1, так как это первая версия php, обеспечивающая поддержку изображений Avif.
Также обратите внимание: Я использую phpthumbon, но если использовать другую версию этого плагина (например, phpthumbof), принцип остается тем же.
Итак, приступим.
Вы, вероятно, читаете это, потому что вы проверили скорость вашего сайта на скорости страницы Google, и Google не очень доволен тем, что вы используете jpeg и png для отображения своих изображений.
У вас есть два варианта:
- Преобразование изображений по одному ( пожалуйста, не делайте этого ) с помощью программного обеспечения, такого как фотошоп, и соответствующего расширения Google.
- Используйте мощь Modx, и пусть ваша CMS/F сделает всю тяжелую работу за вас.
Итак, во-первых, вот как изображение обычно отображается в Интернете:
Потому что до сих пор существует множество браузеров, которые этого не делают. поддержка WebP ( Safari для систем до Big Sur , Internet Explorer …), мы не можем напрямую заменить наше изображение jpg в формате WebP, так как оно не будет отображаться для всех.
Вот что мы будем использовать:
Это очень просто:
- Ваша система поддерживает WebP => ваш браузер отображает изображение WebP.
- Ваша система не поддерживает WebP => вы видите jpeg версии
Теперь в дело вступает phpthumbon: мы хотим, чтобы плагин конвертировал наше изображение в WebP
. 1 — Первый шаг: Установите плагин (безумно верно?! Кто знал?)
2 — Второй шаг: Если вы собираетесь вызывать изображение непосредственно в шаблоне или на странице, вы будете использовать код ниже :
<картинка>
Вот и все! Очень просто!
Теперь ваши изображения будут молниеносными!
Конечно, есть альтернативные варианты, если вы используете телевизор вместо прямого пути к изображению, но вы найдете больше информации в документации каждого плагина. (Не стесняйтесь публиковать свои советы и рекомендации ниже, это может помочь другим).
Но вы поняли!
Ссылки:
: Элемент Picture — HTML: язык гипертекстовой разметки | МДН
Элемент HTML содержит ноль или более элементов и один элемент, предлагающий альтернативные версии изображения для различных сценариев отображения/устройства.
modstore.prophpThumbOn
Павел: Оптимизирован фрагмент phpThumbOf для MODX Revolution
[ОПЛАЧИВАЕТСЯ] Пользовательский фрагмент кода Fancybox с phpthumbon — Marketplace
Сообщество MODXcarlo_13
#1
Привет всем, я ищу разработчика, который мог бы создать пользовательский фрагмент на основе FancyBox и phpthumbon, который можно перетаскивать в текстовый редактор TinyMCE Rich Text Editor.
В идеале сниппет должен выглядеть так (просто идея):
[[fancyboxcustomsnippet &url="imageurl" &alt=".." &caption=".." &size="" &sizedmallscreen=""]]
HTML-часть должна выглядеть так (не удалось вставить из-за форматирования форума):
forum fancy box 2292×430 80,3 КБ
Важно: Фрагмент кода должен быть
- Совместимость с php 7.3, 7.4 и 8
- Совместимость с Modx 2.8.*
- Совместимость с текстовым редактором TinyMCE Rich Text Editor
- Сниппет должен вызываться кэшированным
Дополнительные функции:
- Установите размер по умолчанию в бэкенде (настольном и мобильном). Если поля «size» и «sizesmallscreen» пусты, применяется размер по умолчанию.
- Установить пользовательский размер при использовании плагина (желательно во время перетаскивания в TinyMCE)
- Выберите изображение непосредственно из медиа-менеджера (желательно во время перетаскивания в TinyMCE)
- Установить заголовок и alt для изображения (желательно во время перетаскивания в TinyMCE)
Пожалуйста, сделайте точное предложение и дайте мне знать, какие функции, по вашему мнению, вы можете реализовать. Вы можете сделать несколько предложений с разными функциями, меня это устраивает. Предложения приветствуются
Источники:
https://fancyapps.com/fancybox/3/
modstore.prophpThumbOn
Павел: Оптимизирован фрагмент phpThumbOf для MODX Revolution
МОДКСДополнительные возможности MODX | Редактор форматированного текста TinyMCE 2.0.1-pl
Редактор форматированного текста TinyMCE (2.0.1-pl) | TinyMCE 5 для MODX Revolution | Создано Jan Peca для MODX CMS
Что вам нужно?
См. выше
Когда вам это нужно?
Через неделю-две. Но я гибкий.
Какой бюджет в долларах США (или в местной валюте) вы можете предложить для этой задачи?
Это действительно зависит от опыта разработчика. Конечно, это довольно простой php-скрипт, поэтому ваше предложение должно быть реалистичным.
марк
#2
Вы намерены интегрировать его в TinyMCE RTE, предположительно, в качестве своего рода плагина tinymce? Я могу придумать несколько альтернативных решений, которые проще создать и/или использовать, включая ContentBlocks и синтаксический анализ контента при рендеринге для улучшения изображений, но не уверен, что вы открыты для такого подхода.
1 Нравится
bruno17
#3
Это тоже была моя первая мысль.
Похоже на вариант использования ContentBlocks.
Или они действительно хотят, чтобы редакторы перетаскивали изображения куда угодно между текстом?
В основном это не лучшая идея.
1 Нравится
carlo_13
#4
марка:
Вы настроены на интеграцию с TinyMCE RTE,
Не совсем, если самое простое решение — вставить фрагмент в редактор и добавить параметры вручную, то меня это устраивает.
Конечно, если плагин TinyMCE осуществим, я также открыт для этого варианта. Но опять же, я бы удовлетворился простым фрагментом.
Что касается ContentBlocks, я никогда раньше им не пользовался, но боюсь, что переход с TinyMCE RTE доставит мне слишком много дополнительной работы. И мне, вероятно, придется установить сниппет/плагин на 3 или 4 веб-сайта, поэтому я не уверен, что это будет рентабельно…
carlo_13
#5
бруно17:
Или они действительно хотят, чтобы редакторы перетаскивали изображения между текстом?
Да, это действительно так
Например, содержимое может выглядеть так:
...... [фрагмент...bruno17
#6
мне все еще кажется, что это работа для ContentBlocks или MIGX.
Например, как здесь:
MIGX.Varying layout-boxes - Tutorials | Документация MODXТакже можно сделать это следующим образом:
MIGX.Fancybox-изображения с отдельными заполнителями в Richtext-Content - Учебники | Документация MODXcarlo_13
#7
carlo_13:
На самом деле я не уверен, что это возможно, потому что TinyMCE заменяет
""
на`
, который ломает весь код…Итак, в конце он ломает код и выглядит так:
[[!phpthumbon? &ввод=`
Можно ли создать подключаемый модуль TinyMCE, который предотвращает преобразование содержимого [[…]] в HTML?
Если это так, то мне было бы очень интересно. Дай мне знать.П.С. Я бегло просмотрел MIGX, я не уверен, что это то, что я ищу, но позже я прочитаю его еще раз.
бруно17
#8
вы не используете двойные кавычки для сниппет-свойств, но обратные кавычки
маркх
#9
carlo_13:
Что касается ContentBlocks, я никогда раньше им не пользовался, но боюсь, что переход с TinyMCE RTE доставит мне слишком много дополнительной работы. И мне, вероятно, придется установить сниппет/плагин на 3 или 4 веб-сайта, поэтому я не уверен, что это будет рентабельно…
Попробовать можно бесплатно, поэтому я определенно рекомендую это. Мне кажется, что это было бы здорово для вашего варианта использования.
Это также не обязательно переключатель — вы все равно можете использовать TinyMCE для обычного редактирования контента. Это просто поле изображения, которое вы будете использовать для создания шаблонов изображений в picture/srcset, использования возможностей обрезки и т. д. Я бы предположил, что, вероятно, выгоднее получить ContentBlocks, чем нанимать кого-то для создания функциональности, которую вы описываете.
Другой вариант, на который я намекал, — это использование пути imageSlim. Это дополнение доступно в дополнениях MODX, которые вы применяете в качестве выходного фильтра к содержимому, которое затем анализирует HTML и проверяет, нужно ли изменять размер каких-либо изображений. Что-то подобное можно было бы расширить, чтобы не просто изменить размер одного изображения, но превратить его в пример разметки, которую вы разместили динамически.
carlo_13
#10
Я, наверное, посмотрю на ContentBlocks и посмотрю, работает ли он.
На самом деле, все остальные решения невозможны с TinyMCE, я понял, что редактор все конвертирует в HTML.
«Backtics» или «&» преобразуются в
`
и&
, что, очевидно, разбивает все отдельные куски и фрагменты…Хотя это не из-за самого плагина, я сообщил о проблеме на Github.
В любом случае спасибо за помощь.
бруно17
#11
Другим вариантом может быть использование Fred
jako
#12
Я не могу воспроизвести проблему с TinyMCE на разных хостах. Вставьте вызов фрагмента в поле TinyMCE и откройте окно исходного кода TinyMCE с помощью
Инструменты -> Исходный код
пункт меню. Если обратные кавычки не преобразуются в`
в окне исходного кода, преобразование происходит во время сохранения ресурса.carlo_13
№13
Привет Яко и спасибо за ответ.
Я прикрепил код ниже, если вы хотите провести какой-либо тест на своей стороне ( Обратите внимание, что я заменил бэктиксы на " из-за форматирования форума ).
png" data-caption="Подпись к одному изображению">Но это должно выглядеть так:
причудливая коробка форума 2292×430 80,3 КБ
Если я вставлю фрагмент прямо в редактор полей, это не нарушит обратную связь, но изменит код, добавив много
С другой стороны, если я скопирую и вставлю код в исходный код, возникнет проблема, о которой я упоминал ранее.
как
№14
Я могу воспроизвести эту проблему с помощью вашего кода. TinyMCE заменяет обратные кавычки внутри атрибутов HTML:
testпреобразуется в
ТестВне атрибута заменяется только амперсанд (который будет проанализирован прямо в MODX):
[[!phpthumbon? &input=`https://via.placeholder.com/1920x1080.png` &options=`w=400&h=210&zc=1`]]
[[!phpthumbon? &input=`https://via.placeholder.com/1920x1080.png` &options=`w=400&h=210&zc=1`]]
Я не думаю, что вы можете изменить поведение TinyMCE, чтобы обойти эту проблему. Вы должны использовать фрагменты MODX для этого варианта использования.
1 Нравится
carlo_13
№15
Да, это то, о чем я думал, но все равно спасибо за попытку Jako
Кстати, я заметил, что на странице дополнений также есть CKEditor. Безопасно ли использовать или я должен придерживаться крошечного?
carlo_13
№16
бруно17:
Также можно сделать так:
MIGX.Fancybox-изображения с отдельными заполнителями в Richtext-Content - Учебники | Документация MODXПривет, Бруно, я попробовал упомянутый вами пример с TinyMCE, и он работает, ну, по крайней мере, Tiny не ломает фрагмент .
Я еще не пробовал с phpthumbof, но попробую.бруно17
# 17
Использование phpthumbof или pthumb в чанке getImageList — tpl ничего не сломает, так как вы просто устанавливаете заполнители в RTE. Анализ фрагментов и замена заполнителей происходит на стороне сервера во время выполнения. Таким образом, это не касается контента в RTE.
как
# 18
Я проверил поведение в TinyMCE RTE 1.4.0. Там же конвертируются обратные кавычки. Не могли бы вы сказать мне, какие проблемы возникают при разборе этого контента? Возможно, это дегрессия в MODX 2.x?
carlo_13
# 19
как:
Не могли бы вы рассказать мне, какие проблемы возникают при синтаксическом анализе этого содержимого?
Все картинки ломаются, работает только ссылка href.
как:
Возможно, это дегресс в MODX 2.x?
Ой, мне жаль, что я не могу помочь с этим.
PS : Раньше я использовал CKEditor, но он конвертировал только
и
в html, поэтому код не нарушался. У меня нет никаких предпочтений, но я выбрал TinyMCE, потому что он обновляется чаще (собственно, если не ошибаюсь)This is according to TinyMCE docs:
The base entities<
>
&
'
and"
will always be entity encoded into their named equivalents. Though'
and"
will only быть закодированы в значениях атрибутов, а<
>
будут закодированы только в текстовых узлах. Это правильно и в соответствии со спецификациями HTML и XML.Думаю, это невозможно… но метод Бруно, кажется, помогает.
carlo_13
Оставить комментарий