Содержание
Работа с изображениями средствами phpThumbOf / Хабр
phpThumbOf — это аддон для MODx, основанный на популярном скрипте phpThumb. Он позволяет модифицировать изображения средствами различных графических библиотек «на лету».
Я не буду описывать процесс установки аддона из репозитория. Будем считать, что вы уже скачали его и установили.
Причиной написания поста послужил тот факт, что официальная документация по phpThumbOf просто ужасна. Прочитав ман, я подумал, что единственной функцией, которую можно использовать для модификации изображения при его выводе является зум-кроп (zoom-crop), ибо больше там ничего не сказано. Но позже, попробовав использовать некоторые другие опции phpThumb я выяснил, что они прекрасно работают!
Анатомия phpThumbOf — фильтр вывода
Фильтр Вывода MODx-а позволяет прогнать значение элемента через любой набор фильтров непосредственно перед его выводом на страницу. Синтаксис выглядит следующим образом:
[[element:modifier=`value`]]
Первым и наиболее правильным способом использования phpThumbOf является именно
Фильтра Вывода
, который добавляется к TV-параметру типа «изображение».
Просто для полноты рассказа, я покажу, как добавить такой tv-параметр к шаблону.
Для начала, создайте новый tv-параметр и назовите его как сочтёте нужным. Мой вариант:
Далее, в закладке «Тип ввода» выберите «Изображение»:
Все, что нам осталось сделать, это указать способ вывода tv-параметра — ставим SRC.
Для экспериментов выберем какую-нибудь интересную картинку. Я нашёл себе такую:
Теперь, когда мы указали в каком-нибудь ресурсе выбранную нами куртинку в качестве значения созданного нами дополнительного параметра, его можно вывести в контенте ресурса с помощью конструкции:
<img src=»[[*tvImage]]» />
Как я упоминал в начале статьи, выходной фильтр изменяет элемент до того, как он будет отрисован на странице. Передадим значение нашего tv-параметра выходному фильтру phpThumbOf:
[[*tvImage:phpthumbof=`w=120&h=120`]]
Ремарка: если мы выводим tv-параметр в шаблоне или чанке, то знак звездочка "*" нужно заменить на плюс "+": [[+tvImage:phpthumbof=`w=120&h=120`]]
В результате, мы получим новое сгенерированное изображение, основанное на той картинке, что мы выбрали для ресурса, но масштабированное до размеров 120х120 пикселей. Но как Вы могли заметить, у изображения появились белые поля, возникшие из-за нарушения пропорций исходного изображения.
Избежать этого можно очень просто, достаточно не указывать ширину или высоту. Давайте оставим только фиксированную ширину:
[[+tvImage:phpthumbof=`w=120`]]
Теперь результирующее изображение отмасштабировано только по заданной ширине, высота будет пропорциональной исходному соотношению сторон.
Как Вы можете видеть, возможности ресайза изображений безгранично гибки. Вот ещё один пример с шириной 270 пикселей. Кроме того, вы можете получать на выходе изображения больше оригинального, но это порочная практика ;).
[[*tvImage:phpthumbof=`w=270`]]
Обрезка изображения с точными размерами
Если мы хотим получить изображение с размерами именно 120 на 120 пикселей, мы можем его обрезать. Для этого, необходимо добавить опцию кропа (zoom-crop)
&zc=1.
[[*tvImage:phpthumbof=`w=120&h=120&zc=1`]]
Теперь мы имеем обрезанную версию нашего изображения с точными размерами и без белых полей.
Фильтры PhpThumb — веселье только начинается
Теперь, когда вы знаете, как управлять размером изображения, я покажу вам реальную силу phpThumb — фильтры. Я просто приведу несколько примеров фильтров, доступных в phpThumb.
Обратите внимание, что все новые фильтры я добавляю в конец предыдущих примеров. При этом, их позиция имеет значение! Фильтры применяются слева направо.
Blur (размытие)
[[*tvImage:phpthumbof=`w=120&h=120&zc=1&fltr[]=blur|10`]]
Grayscale (преобразование палитры в градации серого)
[[*tvImage:phpthumbof=`w=120&h=120&zc=1&fltr[]=gray`]]
Скругление углов
[[*tvImage:phpthumbof=`w=120&h=120&zc=1&fltr[]=ric|20|20`]]
Обратите внимание, что у изображения появились белые углы в тех местах, где изображение «скруглилось». Мы можем побороть эту проблему, преобразовав результирующее изображение в PNG-формат.
[[*tvImage:phpthumbof=`w=120&h=120&zc=1&f=png&fltr[]=ric|20|20`]]
Рамка
Периодически возникает необходимость добавить к изображению рамку. Конечно, это можно сделать средствами CSS. Но иногда возникают моменты, когда CSS бесполезен. Я хочу показать Вам один из таких примеров.
[[*tvImage:phpthumbof=`w=120&h=120&zc=1&f=png&fltr[]=bord|5|0|0|FFFFFF&fltr[]=rot|-15|E4F6FE`]]
Вращение изображения
Вращение требует небольшого пояснения. Вы должны указать цвет фона для неграфических области в углах. В этом примере мы используем #006699, вращение -45°.
[[*tvImage:phpthumbof=`w=120&h=120&zc=1&fltr[]=rot|-45|006699`]]
Если Вы хотите уменьшить количество JPG=артефактов, вы можете увеличить качество изображения (1-100):
[[*tvImage:phpthumbof=`w=120&h=120&zc=1&fltr[]=rot|-45|006699&q=100`]]
Если Вы хотите получить прозрачный фон, просто измените вывод в PNG, как мы делали это раньше:
[[*tvImage:phpthumbof=`w=120&h=120&zc=1&fltr[]=rot|-45|&f=png`]]
Color Overlay (наложение цвета)
Данный фильтр позволяет накладывать любые шестнадцатеричные цвета на изображение. Первое значение — процент, второе — цвет в шестнадцатеричном формате.
[[*tvImage:phpthumbof=`w=120&h=120&zc=1&fltr[]=clr|35|990033`]]
Если Вы хотите получить двухцветное изображение, необходимо сначала наложить фильтр grayscale для обесцвечивания картинки.
[[*tvImage:phpthumbof=`w=120&h=120&zc=1&fltr[]=gray&fltr[]=clr|35|990033`]]
Простой текстовый водяной знак
С помощью phpThumb Вы можете накладывать на изображение текстовые и графические водяные знаки. В случае с текстовыми вотермарками Вы можете указать размер, положение, прозрачность и TTF-шрифт.
Вообще, доступных очень много. Рекомендую ознакомиться с документацией.
Вот простой водяной знак на основе стандартного шрифта сервера:
[[*tvImage:phpthumbof=`w=120&h=120&zc=1&fltr[]=gray&fltr[]=wmt|Belafonte Code|3|T|FFFFFF||100|20|0||0|`]]
Финиш
Вот, наверно, и все о чем я хотел рассказать. С бОльшим количеством примеров использования phpThumb вы можете ознакомиться на
официальной странице проекта
.
P.S. Хотел опубликовать в блог «MODx CMS», но как обычно бывает на хабре, не хватило кармы.
P.S.S. Перенес в «MODx CMS»
# src | Имя файла исходного изображения. | |
# new | Создать новую картинку, не миниатюру из существующего изображения. Требует набор параметров «w» и «h». | &new=FF0000|75 — красный background, 75% opacity. Для фона устанавливаются цвета в формате hex. Параметр Opacity опциональный, по умолчанию 100%. |
# w | Максимальная ширина выходной миниатюры в пикселях. | |
# h | Максимальная высота выходной миниатюры в пикселях. | |
# wp | Максимальная ширина для портретных изображений. | |
# hp | Максимальная высота для портретных изображений. | |
# hl | Максимальная высота для пейзажных изображений. | |
# ws | Максимальная ширина для квадратных изображений. | |
# hs | Vаксимальная высота для квадратных изображений. | |
# f | формат изображения после обработки («webp», «jpeg», «png», или «gif»). | |
# q | Компрессия JPEG (качество). |
|
# sx | Левая сторона исходного прямоугольника (по умолчанию = 0) (значения 0 < sx < 1). | |
# sy | Верхняя сторона исходного прямоугольника (по умолчанию = 0) (значения 0 < sy < 1). | |
# sw | Ширина исходного прямоугольника (по умолчанию = fullwidth) (значения 0 < sw < 1) | |
# sh | Высота исходного прямоугольника (по умолчанию = fullheight) (значения 0 < sh < 1) | |
# zc | Масштабирование при обрезке (zoom-crop). С авто кропом, изображение будет обрезаться по большему размеру, чтобы заполнять меньший размер (требует указания обоих параметров «w» и «h», переопределяет «iar», «far»). Необходим ImageMagick для значений отличных от «C» или «1». |
|
# bg | Цвет фона (по умолчанию = FFFFFF). | |
# bc | Цвет границы (по умолчанию = 000000). | |
# fltr | Фильтр. Вызывается в виде массива с параметрами: | |
# brit | яркость — fltr[]=brit|<value> — где <value> значение в диапазоне от -255 до 255. | |
# cont | контрастность — fltr[]=cont|<value> — где <value> значение в диапазоне от -255 до 255. | |
# gam | гамма-коррекция — fltr[]=gam|<value> — где <value> число от 0.01 до 10 (по умолчанию 1.0). | |
# sat | насыщенность — fltr[]=sat|<value> — где <value> число в диапазоне от 0 (без изменений) до -100 (полное обесцвечивание = оттенки серого), или это может быть любое положительное число для повышенной насыщенности. | |
# ds | обесцвечивание — fltr[]=ds|<value> — аналогично «sat», но положительные значения обесцвечивают, отрицательные — насыщают цветом. | |
# gray | оттенки серого — fltr[]=gray — убрать цветность. | |
# th | порог — fltr[]=th|<value> — переводит изображение в оттенки серого, затем все пиксели ярче <value> (диапазон 0-255) делает белыми, все пиксили темнее <value> делает черными. | |
# rcd | уменьшить глубину цвета — fltr[]=rcd|<c>|<d> — где <c> количество цветов (2-256) в выходном изображении, а <d> равное «1» сгладить (по умолчанию) или «0» не сглаживать. | |
# clr | раскрасить — fltr[]=clr|<value>|<color> — где <value> число между 0 и 100 для количества расцвечивания, <color> — цвет для расцвечивания. | |
# sep | сепия — fltr[]=sep|<value>|<color> — где <value> число между 0 и 100 для количества расцвечивания (по умолчанию=50), и <color> цвет, чтобы раскрасить (по умолчанию=A28065). | |
# usm | нерезкое маскирование — fltr[]=usm|<a>|<r>|<t> — где <a> это сумма (по умолчанию = 80, диапазон 0-255), <r> это радиус (по умолчанию = 0.5, диапазон 0.0-10.0), <t> это порог (по умолчанию = 3, диапазон 0-50). | |
# blur | размытие — fltr[]=blur|<radius> — где (0 < <radius> < 25) (по умолчанию = 1). | |
# gblr | гауссово размытие — fltr[]=gblr . | |
# sblr | избирательное размытие — fltr[]=gblr . | |
# smth | smooth — fltr[]=smth|<value> — где <value> весовое значение для матрицы (диапазон от -10 до 10, по умолчанию 6). | |
# lvl | уровни — fltr[]=lvl|<channel>|<method>|<threshold — где <channel> может быть одним из «r», «g», «b», «a» (для Red, Green, Blue, Alpha соответственно), или ‘*’ для всех RGB каналов (по умолчанию) основанных на шкале серого среднего. | |
# wb | баланс белого — «wb» в настройках по умолчанию уже дает эффект, аналогичный «lvl», обычно нет необходимости использовать «lvl», если уже используется «wb». | |
# hist | гистограмма —
| |
# over | overlay / underlay накладывает изображение на миниатюру или накладывает миниатюру на другое изображение (например, для создания рамки рисунка) —
| |
# wmi | водяной знак в виде изображения —
| |
# wmt | текстовый водяной знак —
<x> — работает только со шрифтами TTF, но не со встроенными. | |
# flip | сдвиг изображения по оси X или Y — fltr[]=flip|x или fltr[]=flip|y . | |
# ric | скруглить углы изображения (для вывода прозрачных изображений PNG) —
| |
# elip | похоже на скругление углов, но более эксримальное — fltr[]=elip . | |
# mask | fltr[]=mask|filename.png|<i> — значения маски в оттенках серого. Применяется в качестве альфа-канала к основному изображению. Белый непрозрачный, черный прозрачный, если параметр <i> (инвертировать) не установлен в 1, в этом случае черный непрозрачный, а белый прозрачный. | |
# bvl | BeVeL — fltr[]=bvl|<w>|<c1>|<c2> — где:
| |
# bord | граница —
| |
# fram | рамка наподобие «bord», но более настраиваемая —
| |
# drop | тень —
| |
# crop | обрезка изображения —
| |
# rot | поворот —
| |
# size | изменение размера —
Не используйте этот фильтр без необходимости. Только в случаях, когда к другим фильтрам необходимо применить абсолютное позиционирование на основе исходного изображения и полученное изображение должно быть изменено после применения других фильтров. Этот фильтр является менее эффективным, чем стандартные процедуры изменения размера. | |
# md5s | MD5-хэш исходного изображения |
phpThumbOf или pThumb для PDF миниатюр в Modx
Я использую phpThumbOf на своем сайте для создания измененных изображений на моем сайте modx. Теперь я попытался сделать область загрузки, где я хочу показать некоторые миниатюры PDFs, но он не генерирует их. Когда я пытаюсь использовать pThumb, он возвращает путь к исходному файлу.
Я уже подтвердил, что ImageMagick и php-imagick установлены и включены.
Кроме того, моя локальная среда разработки должна позволять использовать exec
, поэтому я не понимаю, почему это не работает.
Неужели кто-то уже заставил это работать?
modx
phpthumb
Поделиться
Источник
Thomas Venturini
28 ноября 2016 в 10:19
2 ответа
1
Работает ли Ghostscript в вашей настройке? Это необходимо для создания миниатюр PDFs.
Источник:
http://phpthumb.sourceforge.net/demo/docs/phpthumb.faq.txt
Цитата:
Вопрос: Могу ли я сделать миниатюры из PDF?
Ответ: Да, пока у вас есть и ImageMagick, и GhostScript
установленный. Версия AFPL GhostScript, кажется, работает
лучше, чем версия GNU (по крайней мере, для меня это так).
http://www.imagemagick.org
http://www.cs.wisc.edu/~призрак/
Вы можете использовать «sfn» (номер исходного кадра)
параметр phpThumb, чтобы указать, какую страницу миниатюрировать.
Поделиться
achterbahn
23 декабря 2016 в 09:37
0
Используйте pThumb. Это fork из phpThumbOf.
Вы говорите, что уже получаете путь к изображению (включая изображение?). Вы могли бы вложить это во что-то вроде этого:
<a href="[[+image:pthumb=`w=800&h=400&zc=0`]]" rel="lightbox" title="Click for enlagement" >
<img src="[[+image:pthumb=`w=150&h=150&zc=0`]]" />
</a>
Или любые другие варианты, которые вам могут понадобиться. Всегда рекомендуется выводить изображение TV в виде текста, чтобы у вас был полный контроль над фактическим кодом.
Поделиться
Guido Gallenkamp
29 декабря 2016 в 18:04
Похожие вопросы:
modx + phpthumbof = {«success»: false, «code»:401}
Я пытаюсь заставить phpthumbof работать во всех моих контекстах. Поскольку мне не повезло с фрагментом или output-filter/-modifier, я использовал прямую ссылку на разъем phpthumb:…
Modx SimpleSearch: кириллица не найдена
Описание проблемы: есть сайт на Revo 2.4.2. Babel устанавливается с тремя контекстами (Ru, Ua, En). Установлено SimpleSearch 1.9.2. Проблема заключается в невозможности поиска кириллического слова…
Изображения FPDF не работают в MODx Revo
Я использую MODx revolution 2.2.1-PL и FPDF для генерации некоторых PDFs. Я обнаружил, что использование любых изображений размером более 100 КБ (по крайней мере, вокруг этого поля) приводит к их…
PDF отображение миниатюр
Как отобразить PDF миниатюр на странице ASP
Как правильно добавлять водяные знаки на лету в modx revo с помощью phpthumbof
Использование modx revo (2.3.3-pl). Я хотел бы использовать фрагмент phpthumbof для добавления водяных знаков на лету к изображениям, на которые ссылаются ссылки. Другими словами, Я хочу просто…
Modx phpthumbof не влияет на изображение
<img src = [[+tv.img:phpthumbof=`w=180&h=150`]]> Эта конструкция возвращает изображение с исходным размером Я попробовал создать phpthumbof/cache с 777 Я попробовал переустановить…
PDF миниатюр в Delphi
Мне было интересно, есть ли простой способ создания миниатюр файлов PDF в Delphi. В принципе, я хочу сделать первую страницу PDF маленькой bitmap (скажем, 100×100 или что-то подобное). Я вижу два…
Создание миниатюр Pdf страниц
Хиии Я хотел узнать о создании миниатюр в pdf в android. Я хочу, чтобы все миниатюры pdf отображались при отображении pdf.
PDF миниатюр на windows server 2008 R2 в asp.net
Я пытаюсь отобразить PDF миниатюр на сайте asp.net. Когда я запускаю веб-сайт на своем локальном mechine из visual studio debug — отображаются миниатюры изображений (tiff или pdf). Когда я запускаю…
PDF предварительный просмотр миниатюр изображений в laravel 5.1?
У меня есть файловый модуль,где я хочу перечислить все файлы с предварительным просмотром миниатюр. как это выглядит следующим образом, Я храню файлы в папке storage , которая недоступна через http…
GitHub — modxcms/pThumb: A better phpThumbOf
A fork of phpThumbOf 1.4.0. pThumb is a lightweight, efficient, and actively maintained replacement for phpThumbOf. It offers most of the functionality of its predecessor while adding new features, fixing bugs, and offering some potentially dramatic speed improvements on sites which use phpThumbOf heavily.
Curious how pThumb compares to phpThumbsUp, etc.? I’ve got a wiki page with some observations and thoughts. There are a few other worthwhile pages there too.
Вопросы? Проблемы? Пишите по-русски!
Installation
pThumb is a drop-in replacement for phpThumbOf. It uses the same namespace, settings and component names, so after it’s installed any code using phpThumbOf will automatically use the new version instead, with no further changes to the site required.
- Download pThumb via Package Management.
- Uninstall phpThumbOf if it’s installed.
- Install pThumb.
Your phpThumbOf cache will be cleared in the process, but since pThumb generates slightly different filenames the images would have to be regenerated anyway.
(Actually you don’t have to uninstall phpThumbOf first, but it makes things less confusing. If you uninstall phpThumbOf later, you’ll have to reinstall pThumb.)
Documentation
pThumb includes two snippets: phpthumbof and pthumb. They’re exactly the same; use whichever snippet name you like best. phpthumbof is handy for an existing site that was already using phpthumbof; pthumb better for future compatibility and shorter too 🙂
Official documentation for phpThumbOf and phpThumb.
pThumb adds the following system settings:
Check File Modification Time: Checks the original image’s file modification time and updates the cached version if necessary. Changing this setting’s value will cause all currently cached images to become stale. Default: No
Global Defaults: An options string of global defaults. For example:
q=60&zc=C
. These may be overridden by specifying another value in the snippet call.Use Resizer: A global setting for which image manipulation class to use. Setting this to No means pThumb will use the MODX’s built-in phpThumb class. See the Resizer section and extra for more details. Default: No
Use pThumb Cache: Controls which cache system to use: the ”classic” phpThumbOf cache or the new pThumb cache which supports subdirectories and uses shorter hashes. See the section below for more on this. Default: No
Clean Level: Specifies what the cache manager plugin should do on site refresh (site cache clear) events. The plugin processes all 3 caches: phpThumbOf style, pThumb style, and remote images. Possible values — 0: (default) Do nothing. || 1: Clean the caches separately based on the “Max Cache *” system settings (core > phpThumb). || 2: Delete all cached images. || One tip for option 1: changing one of the “Max Cache *” settings to 0 will disable cache cleaning for that parameter.
and several new properties to the phpthumbof/pthumb snippets:
&debug: When this is on, phpThumbOf will write the phpThumb debugmessages array to the MODX error log. This is very useful for troubleshooting phpThumb issues, like whether it’s using ImageMagick on not.
&useResizer: Overrides the phpthumbof.use_resizer system setting to allow more flexibility in switching between phpThumb and Resizer. Useful if you generally want to use one but need the other in a few particular places.
&toPlaceholder: Stores the output in three placeholders: thumbnail URL, width and height. Ex:
[[pthumb? &input=`[[*imagetv]]` &options=`w=200` &toPlaceholder=`thumb`]]
then<img src="[[+thumb]]">
. For more details on this see the Image Dimensions section.&s3output, &s3multiImg: See the S3 documentation.
New pThumb Features
Resizer
[Requires PHP 5.3 or higher]
pThumb comes bundled with Resizer, a lightweight modern alternative to phpThumb. Built on Imagine, Resizer supports the Gmagick, Imagick and GD extensions and is considerably faster than phpThumb for image sizing and cropping operations. Plus all the ZC options now work with GD.
See the Resizer documentation for more on its requirements and supported options. Note that it doesn’t support any of phpThumb’s filters, but many of these things can be done with CSS nowadays.
To enable it, go to System Settings and under phpthumbof, change Use Resizer to Yes. You don’t need to make any other changes to your site; pThumb transparently handles switching between them. You can even override the system setting for a particular pthumb call by using the &useResizer
property (1 for yes, 0 for no).
pThumb Cache
New in version 2.1 is the pThumb Cache, an option which allows cleaner, more semantic and SEO-friendly URLs. Instead of everything being lumped into a one-level directory and having a 32-character hash appended, the new cache system stores thumbnails in subdirectories which mirror part of the original image’s path and adds only an 8-character hash to filenames. Plus, pThumb still offers the original phpThumbOf-style cache. You switch between the two via a system setting.
Cache operation is controlled by three settings (in System Settings under phpthumbof):
pThumb Cache Location: The directory to store cached images. The path is relative to the MODX base directory, which is generally your web root. It defaults to
assets/image-cache
. pThumb will create this directory if it doesn’t already exist (as long as filesystem permissions allow it to).Images Base Directory: This should be set to the directory where you have your images. It defaults to
assets
, but you’ll probably want to make it more specific. This directory and any above it will be left out of the cache filename’s path. Any subdirectories below it will be included. See the example below for more details. If you run pThumb on an image outside this directory, it’ll simply be put in the top level of the cache.Use pThumb Cache: Once you’ve checked the above two settings, flip this to Yes to switch to use the new cache.
Example: You’ve set up a media source for all the content images on your site and they’re all in assets/acme/images/
Use that for the Image Base Directory setting. Leading/trailing slashes don’t matter; pThumb will deal with them either way. You leave Cache Location set to the default. First you call pthumb on this image: assets/acme/images/products/whiz-o-matic/exploded-view-1.jpg
. To create a cache filename your Image Base Directory value—and anything in front of it—will be replaced with Cache Location and the rest of the path used for the name, meaning you’ll end up with a thumbnail URL of /assets/image-cache/products/whiz-o-matic/exploded-view-1.a9b0032f.jpg
. Now suppose you’ve got some oddball image in assets/misc/clutter/junky-junk.jpg
(that is, outside the Image Base Directory you set). No problem, it’ll just go to assets/image-cache/junky-junk.922ebc0b.jpg
.
Note: Switching cache systems won’t migrate your cached images from one cache to the other; images be regenerated as needed. But it won’t delete existing images either, so if you switch back they’ll still be there.
Amazon S3
Version 2.3 adds S3 support, with some improvements over phpThumbOf. See this page for instructions on how to use it.
Remote Images
pThumb goes to some lengths to handle remote images well, whether they’re coming from an S3 media source or from some other server. It uses cURL to download the original image to assets/components/phpthumbof/cache/remote-images/, then uses that local copy for all future operations, meaning things are quite fast after the first run. Version 2.3 improves file naming for remote images, so the output thumbnail file names will be the same as if the original images were local.
Be aware though that once the remote image has been cached, pThumb won’t look at the original again unless you delete the cached copy. Or as an alternative, you may use a query parameter for cache busting. For example if you have a TV called someImageTV, you can do something like this: <img src="[[pthumb? &input=`[[*someImageTV]]?v=1` &options=`h=150&w=150`]]">
. The first time through this will cause pThumb to download a new copy of the remote image and generate a new thumbnail.
Image Dimensions
Starting in version 2.3.1 pThumb can also output image dimensions. It provides two ways of doing this. The first is the &toPlaceholder property described above. Sometimes though placeholders can be tricky, like when they’re being used in a chunk being iterated over by something like getResources. In certain cases—if you don’t give the placeholders distinct names like &toPlaceholder=`img[[+idx]]`
—all the placeholders will be filled in with the values from the last iteration.
However there’s another way to get image dimensions which doesn’t involve placeholders: add dims=1
to the options string and pThumb will output src, width and height all together. Like this: <img [[*imagetv:pthumb=`w=200&dims=1`]] alt="test image">
becomes <img src="/image-cache/test.d39f9375.jpg" alt="test image">
.
Troubleshooting
If pThumb runs into a problem during thumbnail creation, it will simply return the input file name and exit. Usually this happens because some part of the input path or file name is incorrect and pThumb can’t find the image. A broken image link on the front end is a sure sign of this, meaning your web browser can’t find the image either. pThumb will actually correct for several common configuration mistakes and find the image anyway, but in some cases it can’t. Check the MODX error log for more insight into what’s going awry.
Changes from phpThumbOf 1.4.0
pThumb addresses the following open phpThumbOf issues:
- [#37] Add a phpthumbof.jpeg_quality global default JPEG quality setting
- [#46] add phpthumbof.check_mod_time option to refresh the cached image if the
original has been modified - [#44] [#49] Prevent generation of identical images when the same image is used in
multiple resources - [#48] [#49] Fix duplication of images with identical names in different directories
- [#47] Exit quickly and silently when called with no filename, such as in the case of an empty placeholder
- [#52] Make input filename handling more robust, particularly when MODX is
installed in a subdirectory - [#53] Trim extension properly
- [#54] [#50] Fix cache cleaning
In addition to that it:
- Improves performance, especially on sites and pages which use phpThumbOf extensively. In some cases the difference can be very significant.
- Adds better debugging output, like the page’s resource ID to make finding broken images easy, or simple access to phpThumb’s debug messages.
- Improves phpThumbOfCacheManager behavior so that the cache isn’t wiped out by default. The cache manager provides three different levels of cleaning and does better reporting on the number of files and the size of a cache.
создание миниатюр изображений / Сниппеты / Modx Evolution / Технический блог веб-разработчика
С помощью данного сниппета мы можем создавать миниатюры для уже загруженных картинок.
Параметры сниппета:
&input=`assets/template/img/1.jpg` — исходное изображение
&options=`w=300,h=300,far=C` — опции для обработки изображений.
Опции указываются через запятую. Слева от знака ровно название опции, справа — её значение:
w=300 — ширина миниатюры,
h=300 — высота миниатюры,
far=С — выравнивание изображения при его пропорциональном изменении до указанных размеров: C — по центру, T — сверху, B — снизу, L — по левому краю, R — по правому. При этом само изображение получится заданных размеров, а пустые области будут заполнены цветом, указанным в параметре bg.
zc=C — выравнивание изображение при обрезке (отсечении пикселов) по большей стороне, и при необходимости, — пропорционального увеличения его меньшей части таким образом, чтобы заданные размеры были заполнены. Отменяется опцией far. Выравнивание: C — по центру, T — сверху, B — снизу, L — по левому краю, R — по правому.
bg=e2e2e2 — цвет, которым будет заполнена пустая область.
Примеры:
[[phpthumb? &input=`assets/template/img/car.jpg` &options=`w=300,h=300`]] — большая сторона изображения будет изменена до указанных размеров, другая — будет пропорционально изменена и не обязательно в итоге окажется указанного размера.
[[phpthumb? &input=`assets/template/img/car.jpg` &options=`w=300,h=300, far=C`]] — то же самое, но в итоге получится изображение указанных размеров, при этом сама картинка будет пропорциональной. Пустые области будут заполнены указанным цветом.
[[phpthumb? &input=`assets/template/img/car.jpg` &options=`w=300,h=300, zc=C`]] — меньшая высота изображения при необходимости будет увеличена до заданных размеров, а большая сторона будет наоборот отсечена до указанного размера.
ошибки в консоли и не работает компонент – Вопросы Timeweb Community
Здравствуйте!
После переноса сайта с одного домена сервера timeweb на другой в приделах одного аккаунт, отвалилось половина функционала админки на начали появляться ошибки. Все пути проставил верно, права на папки стоят, ошибки из консоли
[2017-07-20 19:35:48] (ERROR @ /home/o/oshinberg/stombest.ru/public_html/core/model/modx/transport/modtransportpackage.class.php : 384) Невозможно открыть файл для чтения: ace-1.6.5-pl.transport.zip?revolution_version=Revolution-2.5.7-pl [2017-07-20 19:35:48] (ERROR @ /home/o/oshinberg/stombest.ru/public_html/core/model/modx/transport/modtransportpackage.class.php : 672) Could not retrieve from ace-1.6.5-pl.transport.zip?revolution_version=Revolution-2.5.7-pl [2017-07-20 19:35:48] (ERROR @ /home/o/oshinberg/stombest.ru/public_html/core/model/modx/transport/modtransportpackage.class.php : 435) MODX could not download the file. You must enable allow_url_fopen, cURL or fsockopen to use remote transport packaging. [2017-07-20 19:35:48] (ERROR @ /home/o/oshinberg/stombest.ru/public_html/core/model/modx/transport/modtransportpackage.class.php : 207) Невозможно осуществить передачу пакета
Также перестала работать Gallery
[2017-07-20 19:26:08] (ERROR @ /home/o/oshinberg/stombest.ru/public_html/core/model/modx/modcachemanager.class.php : 344) Error caching lexicon topic lexicon/ru/core/resource [2017-07-20 19:27:46] (DEBUG @ /home/o/oshinberg/stombest.ru/public_html/core/components/gallery/processors/web/phpthumb.php : 142) <br />Execution time: 0,0001 s <br /> [2017-07-20 19:27:46] (ERROR @ /home/o/oshinberg/stombest.ru/public_html/core/components/gallery/processors/web/phpthumb.php : 163) [phpThumbOf] Could not generate thumbnail: /home/o/oshinberg/stombest.ru/public_html/assets/gallery/4/72.JPG - Debug: Array ( [0] => phpThumb() v1.7.14-201608101311 in file "phpthumb.class.php" on line 229 [1] => ResolveFilenameToAbsolute() NOT prepending $this->config_document_root () to $filename (/assets/gallery/4/72.JPG) resulting in ($AbsoluteFilename = "/assets/gallery/4/72.JPG") in file "phpthumb.class.php" on line 1299 [2] => resolvePath: /assets/gallery/4/72.JPG (allowed_dirs: Array ( ) ) in file "phpthumb.class.php" on line 1140 [3] => resolvePath: iteration, path=/assets/gallery/4/72.JPG, base path = /home/o/oshinberg/stombest.ru/public_html/assets/components/gallery in file "phpthumb.class.php" on line 1159 [4] => open_basedir: "" in file "phpthumb.class.php" on line 1126 [5] => resolvePath: stop at component 5 in file "phpthumb.class.php" on line 1175 [6] => resolvePath: stop at path=/assets/gallery/4/72.JPG in file "phpthumb.class.php" on line 1178 [7] => resolvePath: no match, returning null in file "phpthumb.class.php" on line 1180 [8] => !$this->config_allow_src_above_docroot therefore setting "" (outside "/home/o/oshinberg/stombest.ru/public_html/assets/components/gallery") to null in file "phpthumb.class.php" on line 1344 [9] => setSourceFilename() set $this->sourceFilename to "" in file "phpthumb.class.php" on line 294 [10] => setSourceFilename(/home/o/oshinberg/stombest.ru/public_html/assets/gallery/4/72.JPG) set $this->sourceFilename to "/home/o/oshinberg/stombest.ru/public_html/assets/gallery/4/72.JPG" in file "phpthumb.class.php" on line 294 [11] => CleanUpCacheDirectory() set to purge (NULL days; NULL MB; NULL files) in file "phpthumb.class.php" on line 712 [12] => CleanUpCacheDirectory() skipped because "/home/o/oshinberg/stombest.ru/public_html/assets/components/gallery/cache//phpThumbCacheStats.txt" is recently modified in file "phpthumb.class.php" on line 722 [13] => Addding ImageMagick formats to $AvailableImageOutputFormats (text;ico;bmp;wbmp;gif;png;jpeg) in file "phpthumb.class.php" on line 963 [14] => $AvailableImageOutputFormats = array(text;ico;bmp;wbmp;gif;png;jpeg) in file "phpthumb.class.php" on line 969 [15] => $this->thumbnailFormat set to $this->config_output_format "jpeg" in file "phpthumb.class.php" on line 980 [16] => $this->thumbnailFormat set to $this->f "jpeg" in file "phpthumb.class.php" on line 987 [17] => $this->thumbnailQuality set to "90" in file "phpthumb.class.php" on line 997 [18] => ResolveFilenameToAbsolute() NOT prepending $this->config_document_root (/home/o/oshinberg/stombest.ru/public_html/) to $filename (/home/o/oshinberg/stombest.ru/public_html/assets/gallery/4/72.JPG) resulting in ($AbsoluteFilename = "/home/o/oshinberg/stombest.ru/public_html/assets/gallery/4/72.JPG") in file "phpthumb.class.php" on line 1299 [19] => resolvePath: /home/o/oshinberg/stombest.ru/public_html/assets/gallery/4/72.JPG (allowed_dirs: Array ( ) ) in file "phpthumb.class.php" on line 1140 [20] => resolvePath: iteration, path=/home/o/oshinberg/stombest.ru/public_html/assets/gallery/4/72.JPG, base path = /home/o/oshinberg/stombest.ru/public_html in file "phpthumb.class.php" on line 1159 [21] => resolvePath: stop at component 10 in file "phpthumb.class.php" on line 1175 [22] => resolvePath: stop at path=/home/o/oshinberg/stombest.ru/public_html/assets/gallery/4/72.JPG in file "phpthumb.class.php" on line 1178 [23] => resolvePath: path parsed, over in file "phpthumb.class.php" on line 1184 [24] => $this->sourceFilename set to "/home/o/oshinberg/stombest.ru/public_html/assets/gallery/4/72.JPG" in file "phpthumb.class.php" on line 894 [25] => phpThumb() v1.7.14-201608101311 http://phpthumb.sourceforge.net Error messages disabled. edit phpThumb.config.php and (temporarily) set $PHPTHUMB_CONFIG['disable_debug'] = false; to view the details of this error in file "phpthumb.class.php" on line 4126 [26] => SetCacheFilename() _src set from md5($this->sourceFilename) "/home/o/oshinberg/stombest.ru/public_html/assets/gallery/4/72.JPG" = "4360cba63a3be301fb18a289c80a2dfe" in file "phpthumb.class.php" on line 3520 [27] => SetCacheFilename() _par set from md5(_farC_zc1_h294_w260_dpi150_q90) in file "phpthumb.class.php" on line 3553 [28] => starting ExtractEXIFgetImageSize() in file "phpthumb.class.php" on line 3314 [29] => getimagesize(/home/o/oshinberg/stombest.ru/public_html/assets/gallery/4/72.JPG) says image is x in file "phpthumb.class.php" on line 3324 [30] => getimagesize("/home/o/oshinberg/stombest.ru/public_html/assets/gallery/4/72.JPG") failed in file "phpthumb.class.php" on line 3357 [31] => $this->useRawIMoutput=true after checking $UnAllowedParameters in file "phpthumb.class.php" on line 1595 [32] => phpThumb_tempnam() returning "/tmp/pThumb1F6gVX" in file "phpthumb.class.php" on line 4355 [33] => ImageMagickSwitchAvailable(thumbnail) = 1 in file "phpthumb.class.php" on line 1531 [34] => ImageMagickSwitchAvailable(density) = 1 in file "phpthumb.class.php" on line 1531 [35] => getimagesize(/home/o/oshinberg/stombest.ru/public_html/assets/gallery/4/72.JPG) FAILED with error "" in file "phpthumb.class.php" on line 1692 [36] => getimagesize(/home/o/oshinberg/stombest.ru/public_html/assets/gallery/4/72.JPG) failed in file "phpthumb.class.php" on line 1839 [37] => Remaining $this->fltr after ImageMagick: (array(0) { } ) in file "phpthumb.class.php" on line 2222 [38] => ImageMagickSwitchAvailable(quality;interlace) = 1 in file "phpthumb.class.php" on line 1528 [39] => ImageMagick called as (convert -flatten -density '150' -thumbnail '260x194' -quality '90' -interlace line '/home/o/oshinberg/stombest.ru/public_html/assets/gallery/4/72.JPG[0]' jpeg:'/tmp/pThumb1F6gVX' 2>&1) in file "phpthumb.class.php" on line 2241 [40] => ImageMagick failed with message (convert.im6: unable to open image `/home/o/oshinberg/stombest.ru/public_html/assets/gallery/4/72.JPG': No such file or directory @ error/blob.c/OpenBlob/2641. convert.im6: no images defined `jpeg:/tmp/pThumb1F6gVX' @ error/convert.c/ConvertImageCommand/3044.) in file "phpthumb.class.php" on line 2246 [41] => deleting "/tmp/pThumb1F6gVX" in file "phpthumb.class.php" on line 2278 [42] => ImageMagickThumbnailToGD() failed in file "phpthumb.class.php" on line 3364 [43] => SetOrientationDependantWidthHeight() starting with ""x"" in file "phpthumb.class.php" on line 3293 [44] => SetOrientationDependantWidthHeight() setting w="260", h="194" in file "phpthumb.class.php" on line 3309 [45] => EXIF thumbnail extraction: (size=0; type=""; 0x0) in file "phpthumb.class.php" on line 3421 [46] => starting SourceImageToGD() in file "phpthumb.class.php" on line 3679 [47] => starting ImageCreateFromFilename(/home/o/oshinberg/stombest.ru/public_html/assets/gallery/4/72.JPG) in file "phpthumb.class.php" on line 3594 [48] => empty $filename or getimagesize(/home/o/oshinberg/stombest.ru/public_html/assets/gallery/4/72.JPG) failed in file "phpthumb.class.php" on line 3643 [49] => Populating $rawimagedata in file "phpthumb.class.php" on line 3651 [50] => cannot fopen(/home/o/oshinberg/stombest.ru/public_html/assets/gallery/4/72.JPG) in file "phpthumb.class.php" on line 3662 [51] => Not using EXIF thumbnail data because $this->exif_thumbnail_data is empty in file "phpthumb.class.php" on line 3751 [52] => $this->gdimg_source is still empty in file "phpthumb.class.php" on line 3803 [53] => ImageMagickThumbnailToGD() failed in file "phpthumb.class.php" on line 3805 [54] => phpThumb() v1.7.14-201608101311 http://phpthumb.sourceforge.net Error messages disabled. edit phpThumb.config.php and (temporarily) set $PHPTHUMB_CONFIG['disable_debug'] = false; to view the details of this error in file "phpthumb.class.php" on line 4126 [55] => SourceImageToGD() failed in file "phpthumb.class.php" on line 374 ) [2017-07-20 19:27:47] (DEBUG @ /home/o/oshinberg/stombest.ru/public_html/core/components/gallery/processors/web/phpthumb.php : 142) <br />Execution time: 0,0001 s <br /> [2017-07-20 19:27:47] (ERROR @ /home/o/oshinberg/stombest.ru/public_html/core/components/gallery/processors/web/phpthumb.php : 163) [phpThumbOf] Could not generate thumbnail: /home/o/oshinberg/stombest.ru/public_html/assets/gallery/4/72.JPG - Debug: Array ( [0] => phpThumb() v1.7.14-201608101311 in file "phpthumb.class.php" on line 229 [1] => ResolveFilenameToAbsolute() NOT prepending $this->config_document_root () to $filename (/assets/gallery/4/72.JPG) resulting in ($AbsoluteFilename = "/assets/gallery/4/72.JPG") in file "phpthumb.class.php" on line 1299 [2] => resolvePath: /assets/gallery/4/72.JPG (allowed_dirs: Array ( ) ) in file "phpthumb.class.php" on line 1140 [3] => resolvePath: iteration, path=/assets/gallery/4/72.JPG, base path = /home/o/oshinberg/stombest.ru/public_html/assets/components/gallery in file "phpthumb.class.php" on line 1159 [4] => open_basedir: "" in file "phpthumb.class.php" on line 1126 [5] => resolvePath: stop at component 5 in file "phpthumb.class.php" on line 1175 [6] => resolvePath: stop at path=/assets/gallery/4/72.JPG in file "phpthumb.class.php" on line 1178 [7] => resolvePath: no match, returning null in file "phpthumb.class.php" on line 1180 [8] => !$this->config_allow_src_above_docroot therefore setting "" (outside "/home/o/oshinberg/stombest.ru/public_html/assets/components/gallery") to null in file "phpthumb.class.php" on line 1344 [9] => setSourceFilename() set $this->sourceFilename to "" in file "phpthumb.class.php" on line 294 [10] => setSourceFilename(/home/o/oshinberg/stombest.ru/public_html/assets/gallery/4/72.JPG) set $this->sourceFilename to "/home/o/oshinberg/stombest.ru/public_html/assets/gallery/4/72.JPG" in file "phpthumb.class.php" on line 294 [11] => CleanUpCacheDirectory() set to purge (NULL days; NULL MB; NULL files) in file "phpthumb.class.php" on line 712 [12] => CleanUpCacheDirectory() skipped because "/home/o/oshinberg/stombest.ru/public_html/assets/components/gallery/cache//phpThumbCacheStats.txt" is recently modified in file "phpthumb.class.php" on line 722 [13] => Addding ImageMagick formats to $AvailableImageOutputFormats (text;ico;bmp;wbmp;gif;png;jpeg) in file "phpthumb.class.php" on line 963 [14] => $AvailableImageOutputFormats = array(text;ico;bmp;wbmp;gif;png;jpeg) in file "phpthumb.class.php" on line 969 [15] => $this->thumbnailFormat set to $this->config_output_format "jpeg" in file "phpthumb.class.php" on line 980 [16] => $this->thumbnailFormat set to $this->f "jpeg" in file "phpthumb.class.php" on line 987 [17] => $this->thumbnailQuality set to "90" in file "phpthumb.class.php" on line 997 [18] => ResolveFilenameToAbsolute() NOT prepending $this->config_document_root (/home/o/oshinberg/stombest.ru/public_html/) to $filename (/home/o/oshinberg/stombest.ru/public_html/assets/gallery/4/72.JPG) resulting in ($AbsoluteFilename = "/home/o/oshinberg/stombest.ru/public_html/assets/gallery/4/72.JPG") in file "phpthumb.class.php" on line 1299 [19] => resolvePath: /home/o/oshinberg/stombest.ru/public_html/assets/gallery/4/72.JPG (allowed_dirs: Array ( ) ) in file "phpthumb.class.php" on line 1140 [20] => resolvePath: iteration, path=/home/o/oshinberg/stombest.ru/public_html/assets/gallery/4/72.JPG, base path = /home/o/oshinberg/stombest.ru/public_html in file "phpthumb.class.php" on line 1159 [21] => resolvePath: stop at component 10 in file "phpthumb.class.php" on line 1175 [22] => resolvePath: stop at path=/home/o/oshinberg/stombest.ru/public_html/assets/gallery/4/72.JPG in file "phpthumb.class.php" on line 1178 [23] => resolvePath: path parsed, over in file "phpthumb.class.php" on line 1184 [24] => $this->sourceFilename set to "/home/o/oshinberg/stombest.ru/public_html/assets/gallery/4/72.JPG" in file "phpthumb.class.php" on line 894 [25] => phpThumb() v1.7.14-201608101311 http://phpthumb.sourceforge.net Error messages disabled. edit phpThumb.config.php and (temporarily) set $PHPTHUMB_CONFIG['disable_debug'] = false; to view the details of this error in file "phpthumb.class.php" on line 4126 [26] => SetCacheFilename() _src set from md5($this->sourceFilename) "/home/o/oshinberg/stombest.ru/public_html/assets/gallery/4/72.JPG" = "4360cba63a3be301fb18a289c80a2dfe" in file "phpthumb.class.php" on line 3520 [27] => SetCacheFilename() _par set from md5(_farC_zc1_h294_w260_dpi150_q90) in file "phpthumb.class.php" on line 3553 [28] => starting ExtractEXIFgetImageSize() in file "phpthumb.class.php" on line 3314 [29] => getimagesize(/home/o/oshinberg/stombest.ru/public_html/assets/gallery/4/72.JPG) says image is x in file "phpthumb.class.php" on line 3324 [30] => getimagesize("/home/o/oshinberg/stombest.ru/public_html/assets/gallery/4/72.JPG") failed in file "phpthumb.class.php" on line 3357 [31] => $this->useRawIMoutput=true after checking $UnAllowedParameters in file "phpthumb.class.php" on line 1595 [32] => phpThumb_tempnam() returning "/tmp/pThumbOqHTcY" in file "phpthumb.class.php" on line 4355 [33] => ImageMagickSwitchAvailable(thumbnail) = 1 in file "phpthumb.class.php" on line 1531 [34] => ImageMagickSwitchAvailable(density) = 1 in file "phpthumb.class.php" on line 1531 [35] => getimagesize(/home/o/oshinberg/stombest.ru/public_html/assets/gallery/4/72.JPG) FAILED with error "" in file "phpthumb.class.php" on line 1692 [36] => getimagesize(/home/o/oshinberg/stombest.ru/public_html/assets/gallery/4/72.JPG) failed in file "phpthumb.class.php" on line 1839 [37] => Remaining $this->fltr after ImageMagick: (array(0) { } ) in file "phpthumb.class.php" on line 2222 [38] => ImageMagickSwitchAvailable(quality;interlace) = 1 in file "phpthumb.class.php" on line 1528 [39] => ImageMagick called as (convert -flatten -density '150' -thumbnail '260x194' -quality '90' -interlace line '/home/o/oshinberg/stombest.ru/public_html/assets/gallery/4/72.JPG[0]' jpeg:'/tmp/pThumbOqHTcY' 2>&1) in file "phpthumb.class.php" on line 2241 [40] => ImageMagick failed with message (convert.im6: unable to open image `/home/o/oshinberg/stombest.ru/public_html/assets/gallery/4/72.JPG': No such file or directory @ error/blob.c/OpenBlob/2641. convert.im6: no images defined `jpeg:/tmp/pThumbOqHTcY' @ error/convert.c/ConvertImageCommand/3044.) in file "phpthumb.class.php" on line 2246 [41] => deleting "/tmp/pThumbOqHTcY" in file "phpthumb.class.php" on line 2278 [42] => ImageMagickThumbnailToGD() failed in file "phpthumb.class.php" on line 3364 [43] => SetOrientationDependantWidthHeight() starting with ""x"" in file "phpthumb.class.php" on line 3293 [44] => SetOrientationDependantWidthHeight() setting w="260", h="194" in file "phpthumb.class.php" on line 3309 [45] => EXIF thumbnail extraction: (size=0; type=""; 0x0) in file "phpthumb.class.php" on line 3421 [46] => starting SourceImageToGD() in file "phpthumb.class.php" on line 3679 [47] => starting ImageCreateFromFilename(/home/o/oshinberg/stombest.ru/public_html/assets/gallery/4/72.JPG) in file "phpthumb.class.php" on line 3594 [48] => empty $filename or getimagesize(/home/o/oshinberg/stombest.ru/public_html/assets/gallery/4/72.JPG) failed in file "phpthumb.class.php" on line 3643 [49] => Populating $rawimagedata in file "phpthumb.class.php" on line 3651 [50] => cannot fopen(/home/o/oshinberg/stombest.ru/public_html/assets/gallery/4/72.JPG) in file "phpthumb.class.php" on line 3662 [51] => Not using EXIF thumbnail data because $this->exif_thumbnail_data is empty in file "phpthumb.class.php" on line 3751 [52] => $this->gdimg_source is still empty in file "phpthumb.class.php" on line 3803 [53] => ImageMagickThumbnailToGD() failed in file "phpthumb.class.php" on line 3805 [54] => phpThumb() v1.7.14-201608101311 http://phpthumb.sourceforge.net Error messages disabled. edit phpThumb.config.php and (temporarily) set $PHPTHUMB_CONFIG['disable_debug'] = false; to view the details of this error in file "phpthumb.class.php" on line 4126 [55] => SourceImageToGD() failed in file "phpthumb.class.php" on line 374 )
modx — Modx phpthumbof не влияет на изображение
<img src = "[[+tv.img:phpthumbof=`w=180&h=150`]]">
Эта конструкция возвращает изображение в исходном размере.
- Я попытался создать phpthumbof / cache с 777
- Я пробовал переустановить phpthumbof
- ImageMagick установлен на php
- «phpthumb: … allow … docroot …» включен в конфигурации
- Я попробовал «pthumb», но результат тот же
0
Alex
21 Мар 2015 в 13:39
3 ответа
Лучший ответ
Я думаю, что проблема может быть в том, как вы пытаетесь это использовать, вы можете попробовать:
<img src = "[[!phpthumbof? &input=`[[+tv.img]]` &options=`&w=180&h=150`]]">
Или измените тип ТВ-выхода на «изображение», а затем:
[[+tv.img:phpthumbof=`w=180&h=150`]]
Должно сработать.
Я думаю, что может происходить то, что ваш ТВ-выход — это просто путь, и phpthumbof ничего не может сделать с тем путем, которым ему нужно фактическое изображение в качестве входного ~, поэтому его просто игнорируют.
0
Sean Kimball
21 Мар 2015 в 16:33
Вы не говорите, какую версию MODX вы используете. Но обычно я это делаю так:
<img src="[[*myimagetv:phpthumbof=`w=180&h=150`]]">
myimagetv TV
Тип ввода: изображение
Тип вывода: текст
Примечание. . Если ваш тег находится внутри шаблона блока, вызываемого сниппетом, то вместо звездочки должен стоять знак плюса.
0
LIannotti
13 Авг 2015 в 18:32
Если вы используете phpthumbof во вложенной папке на своем веб-сервере, тогда phpthumbof использует неправильный путь внутри.
Например: корень вашего документа — yourdomain.de и указывает на /var/www/htdocs/yourdomain.de
Ваша установка MODX находится в подпапке /var/www/htdocs/yourdomain.de/test/
Вы редактируете свой MODX-test- «домен» с помощью yourdomain.de/test/manager. -> все работает как ожидалось (phpthumbof нет)
Если вы создаете новый поддомен, известный как test.yourdomain.de, как настоящий корень документа и сопоставите этот домен со своей подпапкой, /var/www/htdocs/yourdomain.de/test/ phpthumbof работает как ожидалось!
Не забудьте очистить MODX-Cache перед изменением и изменить файл core / config / config.inc.php (только записи с относительными путями!)
Оливер
0
Oliver
1 Окт 2015 в 13:22
Адаптивных изображений в MODX с использованием phpThumbsUp
20 мар. Адаптивные изображения в MODX с использованием phpThumbsUp
Отправлено в 02:18
в веб-разработке
Дэвид Уолдрон
Обзор
phpThumbsUp — это надстройка MODX, которая манипулирует исходными изображениями для создания миниатюр. Вы можете использовать phpThumbsUp для создания эскизов изображений для галерей, автоматического изменения размера загружаемых пользователем изображений для мобильных устройств или автоматического добавления сложных фильтров изображений к фотографиям.Он основан на популярном пакете phpThumbOf с небольшими отличиями.
Разделы
Загрузить
Дополнительные ресурсы
Особенности
Оптимизированное создание изображений (v1.0.0 +)
Когда на странице используются phpThumbOf или pThumb, некэшированные изображения генерируются при запросе страницы. phpThumbsUp, с другой стороны, генерирует изображение, когда изображение запрашивается или когда оно загружается на сервер. Это может показаться не большой разницей, и это не тогда, когда все ваши изображения кэшированы, но когда на странице много изображений, создание этих изображений при загрузке страницы может вызвать долгое ожидание, пока клиент увидит контент. , или даже тайм-аут скрипта на сервере.
Предположим, что некэшированной странице требуется 500 мс для обработки запроса и создания страницы, 10 мс для загрузки страницы, 10 мс для загрузки ресурсов CSS / JS, указанных в области
, 10 мс для загрузки каждого изображения и 200 мс для обработки. каждое изображение.
phpThumbOf с 1 изображением на странице: всего 730 мс
- 500 мс + 200 мс
- 10 мс
- 10 мс
- 10 мс
phpThumbsUp с 1 изображением на странице: всего 730 мс
- 500 мс
- 10 мс
- 10 мс
- 10 мс + 200 мс
phpThumbOf с 5 изображениями на странице: всего 1570 мс
- 500 мс + 1000 мс
- 10 мс
- 10 мс
- 50 мс
phpThumbsUp с 5 изображениями на странице: всего 1570 мс
- 500 мс
- 10 мс
- 10 мс
- 50 мс + 1000 мс
Во всех вышеперечисленных случаях пользователь будет смотреть на белый экран, ожидая загрузки страницы, пока не дойдет до зеленой части диаграммы.В этот момент они увидят страницу, но изображения все равно будут загружаться. Вы можете видеть, что с phpThumbOf время, затрачиваемое на загрузку изображений, загружается заранее, то есть они будут смотреть на белый экран, ожидающий загрузки страницы. С phpThumbsUp они увидят страницу раньше, но изображения не обязательно появятся сразу.
Безопасность (v1.0.0 +)
В некоторых случаях некоторые функции phpThumb могут представлять угрозу безопасности при определенных конфигурациях сервера, особенно при использовании параметров, связанных с файлами.Чтобы предотвратить любые злоупотребления, вы можете изменить phpthumbsup.available_options
и phpthumbsup.available_filters
, чтобы использовать только те параметры, которые вам нужны. Если ни один из ваших больших пальцев не использует какие-либо параметры, например, кроме высоты, ширины и масштабирования-кадрирования, вы можете изменить доступные параметры на w, h, zc
и, например, запретить использование фильтров.
В большинстве случаев вам следует избегать использования phpThumbsUp для добавления водяных знаков к изображениям, если вы пытаетесь предотвратить доступ к исходному изображению, потому что пользователям легко удалить эту часть сгенерированного URL-адреса, чтобы увидеть изображение без водяного знака.
Адаптивные изображения (v1.1.0 +)
Начиная с версии 1.1.0, phpThumbsUp имеет необязательную настройку для определения размера экрана используемого устройства при запросе большого пальца и создания изображений меньшего размера для устройств с меньшим размером экрана. Если для параметра phpthumbsup.responsive
установлено значение true, короткий фрагмент Javascript автоматически встраивается перед концом тега head
, который сохраняет размер экрана клиента в файле cookie. Каждый раз, когда запрашивается изображение, phpThumbsUp проверяет размер экрана клиента и автоматически регулирует ширину / высоту изображения на основе пороговых значений, определенных в настройке phpthumbsup.Ответный_порог
.
Например, пороговые значения по умолчанию — 480 и 1024. Таким образом, если клиент использует телефон с размером экрана 320 пикселей и было запрошено изображение с шириной 800, phpThumbsUp изменит ширину на 480 (ближайшее пороговое значение больше или равно размеру экрана).
Если вы хотите сделать это для любого изображения на вашем сайте, phpThumbsUp будет работать с любым изображением, даже если не указаны параметры. Вы можете использовать / phpthumbsup / images / big-picture.jpg
или /phpthumbsup/src/images/big-picture.jpg, например,
. Это автоматически кэширует ваши пороговые изображения, если устройство с меньшим экраном загружает изображение, но оставляет исходную версию нетронутой (и без дублирующего файла кеша).
Этот параметр отключен по умолчанию, но если вы используете MODX на адаптивном сайте, вы можете включить его, чтобы сократить пропускную способность для небольших устройств.
Настройки по умолчанию (v1.1.0 +)
В версии 1.1.0, мы представили новый параметр под названием phpthumbsup.default
, который вы можете использовать для установки параметров по умолчанию, которые применяются к каждому изображению, сгенерированному phpThumbsUp. Поскольку эти параметры не отображаются в URL-адресе, они могут игнорировать настройки безопасности phpthumbsup.available_options
и phpthumbsup.available_filters
. Любое значение по умолчанию автоматически перезаписывается, если соответствующий параметр обнаружен на определенном изображении.
Вы можете использовать этот параметр, чтобы убедиться, что каждое изображение обрезано сверху с zc = T
, или, например, для установки качества JPEG по умолчанию с q = 90
.Вы также можете связать их вместе: w = 250 & h = 100 & zc = T & q = 90
.
Другие особенности
- Если файл кэша старше исходного файла, автоматически создается новый файл кэша. (v1.0.0 +)
- Системная настройка для очистки кеша phpThumbsUp при очистке кеша сайта. (v1.0.0 +)
- Быстро создавать миниатюры через URL-адреса (нет необходимости в вызове фрагмента на странице) (v1.0.0 +)
Минимальные требования
- MODX Revolution 2.2
- PHP 5.3.x
- ImageMagick 6.x или библиотека GD
Использование phpThumbsUp
phpThumbsUp генерирует изображения всякий раз, когда они запрашиваются с вашего базового URL (по умолчанию phpthumbsup /), используя любой из параметров phpThumb.
Выходной фильтр phpThumbsUp
Примечание: этот синтаксис в точности совпадает с синтаксисом phpThumbOf.
Если вы хотите, чтобы phpThumbsUp генерировал URL-адреса для вас, вы можете использовать фрагмент phpThumbsUp в качестве выходного фильтра, например:
[[* image: phpthumbsup = `w = 100 & h = 100`]]
Вы также можете традиционно использовать фрагмент phpThumbsUp, например:
[[phpthumbsup? & input = `assets / images / photo.jpg` & options = `w = 100 & h = 100`]]
URL-адреса phpThumbsUp
phpThumbsUp использует определенный формат URL, чтобы знать, когда ему нужно создать ползунок и какие фильтры применять. Базовый URL-адрес (вы можете настроить его в системных настройках) — это начало URL-адреса, который идентифицирует его как миниатюру phpThumbsUp. Далее следуют фильтры и исходное изображение. Например…
/phpthumbsup/w/100/h/100/src/path/to/image.jpg
… создает миниатюру изображения размером 100×100 пикселей по пути / к / изображению.jpg (относительно корня вашего сайта). / src /
указывает конец фильтров, а все, что следует сразу за / src /
, является путем к исходному изображению. См. Раздел примеров внизу страницы для получения дополнительной информации.
Автоматическое создание больших пальцев
Создание эскиза, когда пользователь запрашивает его в первый раз, — это хорошо, но еще лучше, если этот эскиз уже сгенерирован до того, как он туда попадет. Если вы хотите автоматически создавать миниатюры, когда пользователь загружает файл через менеджер MODX, вы можете сделать это с помощью phpthumbsup.настройка auto_create.
При загрузке файла phpThumbsUp проанализирует параметр phpthumbsup.auto_create (список URL-адресов phpThumbsUp, разделенных двоеточиями) и применит фильтры, определенные для каталога, в который загружается файл. Например, если параметр содержит…
/ w / 100 / h / 100 / src / assets / images / photos: / w / 800 / h / 800 / src / assets / images / photos
… затем каждый раз, когда изображение загружается в каталог assets / images / photos, phpThumbsUp создает из него два эскиза (100x100px и 800x800px).Обратите внимание, что URL-адреса здесь НЕ содержат базовый URL-адрес, а вместо этого начинаются непосредственно с фильтров.
Настройки
Ключ | Описание | Примеры |
---|---|---|
phpthumbsup.core_path | Путь к компоненту phpThumbsUp. НЕ изменяйте это, если у вас нет специальной установки MODX. | компонентов {core_path} / phpthumbsup / |
phpthumbsup.cache_path | Путь к каталогу кеша, в котором phpThumbsUp хранит файлы изображений.Если этой папки не существует, phpThumbsUp попытается ее создать. Убедитесь, что он доступен для записи. | компонентов {core_path} / phpthumbsup / cache / |
phpthumbsup.base_url | Базовый URL для всех изображений, созданных phpThumbsUp. Это никогда не должно совпадать с псевдонимом для одного из ваших ресурсов. | палец / |
phpthumbsup.auto_create | Если установлен один или несколько URL-адресов phpThumbsUp, разделенных двоеточиями, phpThumbsUp автоматически создает эскизы, когда изображение загружается через менеджер MODX. | / w / 100 / h / 100 / zc / 1 / src / assets / images / photos: / w / 350 / h / 350 / zc / 1 / src / assets / images / photos |
phpthumbsup.clear_cache | Если установлено значение true, кеш изображений phpThumbsUp будет очищен, когда вы очистите кеш MODX. | верно / неверно |
phpthumbsup.available_options | Список параметров, разделенных запятыми, которые phpThumbsUp распознает и обработает (полный список параметров см. В файле readme для phpThumb). | Вт, В, ZC |
phpthumbsup.available_filters | Список фильтров, разделенных запятыми (fltr []), которые phpThumbsUp распознает и обработает (полный список фильтров см. В файле readme для phpThumb). | борд, серый, сен |
phpthumbsup.responsive | Если включено, phpThumbsUp автоматически ограничивает размеры изображений по размеру экрана заданными пороговыми значениями. | верно / неверно |
phpthumbsup.responsive_threshold | Разделенный запятыми список пороговых значений размера экрана для создания адаптивных изображений. | 480,1024 |
phpthumbsup.default | Если установлено, эти настройки будут применяться ко всем большим пальцам, если они не установлены специально для этого большого пальца. Например, вы можете установить для этого параметра значение zc = 1 & fltr [] = gray, чтобы по умолчанию получать черно-белые изображения с обрезанным масштабированием. | w = 500 и q = 90 |
Примеры
История изменений
phpThumbsUp 1.1.1
- Добавлен метод parse_path для преобразования {core_path}, {assets_path} или {base_path} при установке значений в фактические пути (устраняет проблему кеширования).
phpThumbsUp 1.1.0
- Добавлен порог ширины экрана для адаптивного дизайна.
- Добавлена настройка «по умолчанию» для параметров phpThumbsUp, которая должна применяться ко всем изображениям по умолчанию.
- Изменен phpThumbsUp для работы только с src и без параметров
phpThumbsUp 1.0.1
- Добавлены заголовки ответа сервера для 304 и кеширование браузера
- Исправлена проблема с пробелами в пути к изображению
- Изменен каталог кеша для размещения в каталоге кеша MODX
- Изменен phpthumbsup.настройки base_url для включения {base_url} в начало
phpThumbsUp 1.0.0
Обновление
Resizer
Что это?
Resizer — это средство изменения размера изображения / процессор для MODX, который использует Imagine под капотом. Примерно во время своего выпуска библиотека phpthumb по умолчанию, включенная в MODX, имела серьезные проблемы с производительностью. Представьте, что это был новичок в этом районе в то время, и Джейсон Грант проделал ОЧЕНЬ много работы, чтобы связать его с MODX. Здесь были задокументированы (значительные) преимущества в производительности и сравнения между различными решениями.Джейсон выпустил pThumb Extra для сообщества MODX, и это было прекрасно.
Перенесемся на 5 лет вперед, и неудивительно, что мир продвинулся дальше. Начиная с последней версии 1.2.2, Imagine поддерживает webp. К сожалению, он также содержит критические изменения, несовместимые с Reductionist, и поэтому ломает Resizer в некоторых средах.
Бета-версия 1.0.2 Resizer имеет скромную цель — обновить Imagine до версии 0.7.1, которая работает и исправляет некоторые ошибки.Однако для повышения стабильности до pl
и пакета pThumb требуется дополнительное тестирование в реальных условиях.
Фон
Для PHP доступны различные расширения обработки изображений, но в зависимости от серверной среды они могут быть скомпилированы и включены, а могут и не быть. Imagine — это библиотека, предоставляющая «… необходимые функции для приведения всех собственных низкоуровневых библиотек обработки изображений в PHP к одному и тому же простому и интуитивно понятному объектно-ориентированному API». Reductionist — это интерфейсный уровень, разработанный Джейсоном Грантом для реализации различных классов Imagine.Resizer оборачивает Reductionist и делает его пригодным для использования в MODX. pThumb устанавливает Resizer вместе с удобными сниппетами и управлением кешем, чтобы, наконец, доставлять манипуляции с изображениями конечному пользователю MODX CMS с простым в использовании интерфейсом.
Как это может повлиять на вас
pThumb можно настроить для использования стандартной библиотеки phpthumb или Resizer. По умолчанию — phpthumb. В настоящее время phpthumb, похоже, поддерживает новые форматы файлов, включая webp, jp2 и jxr, что обеспечивает широкую поддержку браузеров.Resizer не работает, потому что Imagine этого не делает — по крайней мере, до версии 1.2.2, которая нарушает b / c. Если вам сейчас нужны эти новые форматы файлов, вы должны использовать phpthumb, а не Resizer.
Эта последняя версия Resizer должна быть установлена вручную в установщике Extras после установки pThumb. Он исправляет несколько ошибок, но не дает нам всех желаемых новейших функций. В вилке есть несколько тестовых примеров phpunit, которые могут помочь в любой работе по обновлению в будущем. Некоторые первоначальные исследования по внедрению последних версий Imagine в Reductionist дали неутешительные результаты — похоже, что для рефакторинга Reductionist потребуется много работы.ОБНОВЛЕНИЕ [2019-09-17] Новый подход выглядит многообещающим, работает над обновлением до Imagine 1.2.2. Доступен для тестирования в каталоге _packages ветки Image-122
.
Итак, пока что я могу предложить это очень скромное обновление. По крайней мере, эта проблема pThumb, вероятно, решена.
MODX, phpThumb и доппель-тый Pfade von Strato ›arne.xyz
· автор: Arne
Heute gab es auf einer von mir betreuten Веб-сайт с MODX ein merkwürdiges Проблема: Начните поиск всех известных Unterseiten waren plötzlich weiß und zeigten keine Inhalte mehr an — der Zugang zum Backend lück aber zum.
Auf der Suche nach der Ursache wollte ich zunächst ins Fehlerprotokoll gucken, aber die Seite im Backend lud sich endlos selbst neu, da das Error-Log zu groß war: 1,1 ГБ!
Per FTP auf dem Server angemeldet, das Fehlerprotokoll, / core / cache / logs / error.log
, heruntergeladen und auf dem Server gelöscht.
Die Startseite und All Unterseiten waren daraufhin wieder erreichbar — Симптом behoben, aber die Ursache noch nicht.
Beim Surfen durch die Seite füllte sich das Fehlerprotokoll innerhalb weniger Minuten wieder, je nach Unterseite mit vielen Bildern sogar um einige MB pro Seitenaufruf, sodass das Log schon nach kurzer War Zeit wieder bei 10, 30 MB.
Die Ursache für das große Error-Log war das Modul phpThumb (), das reihenweise Fehlermeldungen wie folgende generierte:
[2018-03-15 13:20:18] (ОШИБКА @ / mnt / web ### / ## / ## / ######## / htdocs / project / website / core / components / phpthumbof / модель / phpthumbof.class.php: 156) [pThumb] Ресурс: 1 || Изображение: /home/strato/http/premium/rid/##/##/########/htdocs/project/website/assets/gallery/12/126.jpg Не удалось создать эскиз Вывод отладки phpThumb: [0] => phpThumb () v1.7.14-201608101311 в файле "phpthumb.class.php" в строке 229 [1] => setSourceFilename (/ home / strato / http / premium / rid / ## / ## / ######## / htdocs / project / website / assets / gallery / 12 / 126.jpg) установить $ this-> sourceFilename в "/ home / strato / http / premium / rid / ## / ## / ######## / htdocs / project / website / assets / gallery / 12/126.jpg "в файле" phpthumb.class.php "в строке 294 [2] => $ AvailableImageOutputFormats = array (text; ico; bmp; wbmp; gif; png; jpeg) в файле "phpthumb.class.php" в строке 969 [3] => $ this-> thumbnailFormat установлен на $ this-> config_output_format "jpeg" в файле "phpthumb.class.php" в строке 980 [4] => $ this-> thumbnailFormat установлен на $ this-> f "jpeg" в файле "phpthumb.class.php" в строке 987. [5] => $ this-> thumbnailQuality установлено на "75" в файле "phpthumb.class.php" в строке 997 [6] => resolvePath: / home / strato / http / premium / rid / ## / ## / ######## / htdocs / project / website / assets / gallery / 12/126.jpg (allowed_dirs: массив ( ) ) в файле "phpthumb.class.php" в строке 1140 [7] => resolvePath: итерация, путь = / home / strato / http / premium / rid / ## / ## / ######## / htdocs / project / website / assets / gallery / 12/126 .jpg, базовый путь = / mnt / web ### / ## / ## / ######## / htdocs / project / website в файле "phpthumb.class.php" в строке 1159 [8] => resolvePath: остановиться на компоненте 4 в файле "phpthumb.class.php" в строке 1175 [9] => resolvePath: остановиться на пути = / home / strato / http / premium в файле "phpthumb.class.php" в строке 1178 [10] => resolvePath: нет совпадений, возвращается null в файле "phpthumb.class.php "в строке 1180 [11] =>! $ This-> config_allow_src_above_docroot, поэтому установка "" (за пределами "/ mnt / web ### / ## / ## / ####### / htdocs / project / website") в значение null в файле "phpthumb.class.php" в строке 1344 [12] => $ this-> sourceFilename установлено на "" в файле "phpthumb.class.php" в строке 894 [13] => phpThumb () v1.7.14-201608101311 http://phpthumb.sourceforge.net Сообщения об ошибках отключены. отредактируйте phpThumb.config.php и (временно) установите $ PHPTHUMB_CONFIG ['disable_debug'] = ложь; чтобы просмотреть подробную информацию об этой ошибке в файле "phpthumb.class.php "в строке 4126 [14] => resolvePath: /home/strato/http/premium/rid/##/##/########/htdocs/project/website/assets/gallery/12/126.jpg (allowed_dirs : Множество ( ) ) в файле "phpthumb.class.php" в строке 1140 [15] => resolvePath: итерация, путь = / home / strato / http / premium / rid / ## / ## / ######## / htdocs / project / website / assets / gallery / 12/126 .jpg, базовый путь = / mnt / web ### / ## / ## / ######## / htdocs / project / website в файле "phpthumb.class.php" в строке 1159 [16] => resolvePath: остановиться на компоненте 4 в файле "phpthumb.class.php "в строке 1175 [17] => resolvePath: остановиться на пути = / home / strato / http / premium в файле "phpthumb.class.php" в строке 1178 [18] => resolvePath: нет совпадений, возвращается null в файле "phpthumb.class.php" в строке 1180 [19] =>! $ This-> config_allow_src_above_docroot, поэтому установка "" (вне "/ mnt / web ### / ## / ## / ####### / htdocs / project / website") в значение null в файле "phpthumb.class.php" в строке 1344 [20] => SetCacheFilename () _src, установленный из md5 ($ this-> sourceFilename) "" = "d41d8cd98f00b204e9800998ecf8427e" в файле "phpthumb.class.php "в строке 3520 [21] => SetCacheFilename () _par установлен из md5 (_farC_w970_dpi150_q75) в файле "phpthumb.class.php" в строке 3553 [22] => запуск ExtractEXIFgetImageSize () в файле "phpthumb.class.php" в строке 3314 [23] => пропуск getimagesize (), потому что $ this-> sourceFilename пуст в файле "phpthumb.class.php" в строке 3326 [24] => Ошибка getimagesize ("") в файле "phpthumb.class.php" в строке 3357 [25] => $ this-> useRawIMoutput = true после проверки $ UnAllowedParameters в файле "phpthumb.class.php "в строке 1595 [26] => ImageMagickThumbnailToGD () прерывается, поскольку $ this-> sourceFilename пуст в файле "phpthumb.class.php" в строке 1640 [27] => Ошибка ImageMagickThumbnailToGD () в файле "phpthumb.class.php" в строке 3364 [28] => SetOrientationDependantWidthHeight (), начиная с "x" "в файле" phpthumb.class.php "в строке 3293 [29] => SetOrientationDependantWidthHeight () установка w = "970", h = "0" в файле "phpthumb.class.php" в строке 3309 [30] => Извлечение миниатюр EXIF: (size = 0; type = ""; 0x0) в файле "phpthumb.class.php "в строке 3421 [31] => запуск SourceImageToGD () в файле "phpthumb.class.php" в строке 3679 [32] => Не используются данные миниатюр EXIF, потому что $ this-> exif_thumbnail_data пусто в файле "phpthumb.class.php" в строке 3751 [33] => $ this-> gdimg_source все еще пуст в файле "phpthumb.class.php" в строке 3803 [34] => Ошибка ImageMagickThumbnailToGD () в файле "phpthumb.class.php" в строке 3805 [35] => phpThumb () v1.7.14-201608101311 http://phpthumb.sourceforge.net Сообщения об ошибках отключены.отредактируйте phpThumb.config.php и (временно) установите $ PHPTHUMB_CONFIG ['disable_debug'] = ложь; чтобы просмотреть подробную информацию об этой ошибке в файле "phpthumb.class.php" в строке 4126 [36] => Ошибка SourceImageToGD () в файле "phpthumb.class.php" в строке 374 ----------------------
»Не удалось создать эскиз« war zunächst das Offensichtlichste und Verständlichste an der Fehlermeldung. Eine Google-Suche danach brachte nur ein Ergebnis, dass leider keine Lösung aber einen wichtigen Hinweis lieferte: Irgendetwastimmt mit den Pfaden zu den Bild-Dateien nicht.
In der Haupt-Konfigurationsdatei /core/config/config.inc.php
fiel mir bereits auf, dass es zwei absolute Pfade gibt (Zahlen / IDs durch »#« ersetzt):
-
/ home / strato / http / premium / rid / ## / ## / ######## / htdocs / project / website /
-
/ mnt / web ### / ## / ## / ######## / htdocs / project / website /
Diese waren verschiedenen Einstellungen zugeordnet; jedoch ohne erkennbaren Grund, warum die erste Variante bei der einen Einstellung und die zweite Variante bei einer anderen.Были и другие MODX-веб-сайты, такие как Hostern, All-Inkl.com или Uberspace, а также Pfade bei allen Einstellungen identity.
Strato nutzt zwei absolute Pfade für Web-сайты. Einmal den, ich nenne es mal, »offiziellen« / home / strato / http / premium / rid / ## / ## / ######## / htdocs /
; und den »inoffiziellen« (wahrscheinlich physischen) Pfad / mnt / web ### / ## / ## / ######## / htdocs /
.
Ein Blick в PHP-конфигурации, которая имеет значение: der erste Pfad steht auch in den üblichen Server-Variablen wie _SERVER ["DOCUMENT_ROOT"]
; der zweite Pfad tauch in — für mich bisher ungewöhnlichen — Server-Variablen wie _SERVER ["RZ_path"]
auf.
Nach einigen Versuchen und wiederholtem Lesen jeder Zeile der Fehlermeldung, war schließlich klar was genau die Ursache für die Fehler-Tirade ist: phpThumb arbeitet mit dem zweiten, inoffiziellen «Pfad, bekommt die aber von Эрстен, официеллен «Вариант. Und dann, beim »auflösen« der Pfade passiert das, находился в den Zeilen 7–11 bzw. 15–19 der Fehlermeldung steht: phpThumb verlässt den Bereich, den es lesen darf ( docroot
также Document Root ) und findet die Bild-Datei nicht — denn für phpThumb sind und diese beiden Pfischade nich wie anscheinend Strato, синоним verwenden.
Die Lösung ist также, die Pfade an phpThumb anpassen : in der /core/config/config.php
und der /connectors/config.core.php
all Pfade auf die zweite Pfadlen-Variante umstel schon findet phpThumb die Bild-Dateien und die Fehlermeldungen hören auf.
В: Справочная служба компьютера
·
Теги: modx, php, phpthumb, strato, webdev
# | CVE ID | CWE ID | # эксплойтов | Тип (ы) уязвимости | Дата публикации | Дата обновления | Счет | Полученный уровень доступа | Доступ | Сложность | Аутентификация | Конф. | Интег. | Доступен. | |||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | CVE-2019-1010123 | 434 | | 2019-07-23 | 2019-10-09 | 5,0 | Нет | Пульт ДУ | Низкий | Не требуется | Нет | Частично | Нет | ||||||
Галерея MODX Revolution 1.На 7.0 влияют: CWE-434: неограниченная загрузка файлов опасного типа. Влияние: Создание файла с пользовательским именем и содержимым. Компонент: Фильтрация пользовательских параметров перед их передачей в класс phpthumb. Вектор атаки: веб-запрос через /assets/components/gallery/connector.php. | |||||||||||||||||||
2 | CVE-2018-1000208 | 22 | | Реж.Trav. | 2018-07-13 | 2018-09-07 | 6,4 | Нет | Пульт ДУ | Низкий | Не требуется | Нет | Частично | Частично | |||||
MODX Revolution версии <= 2.6.4 содержит уязвимость прохождения каталогов в /core/model/modx/modmanagerrequest.class.php, которая может привести к удалению файлов. Эта атака, похоже, может быть использована через веб-запрос через процессор безопасности / входа в систему.Эта уязвимость, по-видимому, была исправлена в опросе 13980. | |||||||||||||||||||
3 | CVE-2018-1000207 | 732 | | 2018-07-13 | 2019-10-03 | 6,5 | Нет | Пульт ДУ | Низкий | ??? | Частично | Частично | Частично | ||||||
MODX Revolution версии <= 2.6.4 содержит уязвимость «Неверный контроль доступа» в параметрах фильтрации параметров пользователя перед их передачей в класс phpthumb, что может привести к созданию файла с настраиваемым именем файла и содержимым. Эта атака может быть использована через веб-запрос. Эта уязвимость, по-видимому, была исправлена в коммите 06bc94257408f6a575de20ddb955aca505ef6e68. | |||||||||||||||||||
4 | CVE-2018-20758 | 79 | | XSS | 2019-02-06 | 2019-10-23 | 3.5 | Нет | Пульт ДУ | Средний | ??? | Нет | Частично | Нет | |||||
MODX Revolution через v2.7.0-pl разрешает XSS через пользовательские настройки, такие как Описание. | |||||||||||||||||||
5 | CVE-2018-20757 | 79 | | XSS | 2019-02-06 | 2019-02-06 | 4.3 | Нет | Пульт ДУ | Средний | Не требуется | Нет | Частично | Нет | |||||
MODX Revolution через v2.7.0-pl разрешает XSS через расширенное пользовательское поле, такое как имя контейнера или имя атрибута. | |||||||||||||||||||
6 | CVE-2018-20756 | 79 | | XSS | 2019-02-06 | 2019-02-06 | 4.3 | Нет | Пульт ДУ | Средний | Не требуется | Нет | Частично | Нет | |||||
MODX Revolution через v2.7.0-pl разрешает XSS через ресурс документа (например, pagetitle), который неправильно обрабатывается во время действия обновления, действия быстрого редактирования или просмотра журналов диспетчера. | |||||||||||||||||||
7 | CVE-2018-20755 | 79 | | XSS | 2019-02-06 | 2019-02-06 | 4.3 | Нет | Пульт ДУ | Средний | Не требуется | Нет | Частично | Нет | |||||
MODX Revolution через v2.7.0-pl разрешает XSS через поле User Photo. | |||||||||||||||||||
8 | CVE-2018-17556 | 79 | | XSS | 26.09.2018 | 2018-11-15 | 3.5 | Нет | Пульт ДУ | Средний | ??? | Нет | Частично | Нет | |||||
MODX Revolution v2.6.5-pl позволяет сохранять XSS через действие Create New Media Source. | |||||||||||||||||||
9 | CVE-2018-10382 | 79 | | XSS | 2018-06-01 | 2018-06-27 | 3.5 | Нет | Пульт ДУ | Средний | ??? | Нет | Частично | Нет | |||||
MODX Revolution 2.6.3 имеет XSS. | |||||||||||||||||||
10 | CVE-2017-1000223 | 79 | | XSS | 2017-11-17 | 2017-12-01 | 3.5 | Нет | Пульт ДУ | Средний | ??? | Нет | Частично | Нет | |||||
Уязвимость, связанная с внедрением хранимого веб-контента (WCI, также известная как XSS), присутствует в MODX Revolution CMS версии 2.5.6 и более ранних. Авторизованный пользователь с разрешениями на редактирование пользователей может сохранить вредоносный код JavaScript в качестве имени группы пользователей и потенциально получить контроль над учетными записями жертв.Это может привести к повышению привилегий, обеспечивающих полный административный контроль над CMS. | |||||||||||||||||||
11 | CVE-2017-11744 | 79 | | XSS | 2017-07-30 | 2017-08-02 | 4,3 | Нет | Пульт ДУ | Средний | Не требуется | Нет | Частично | Нет | |||||
В MODX Revolution 2.5.7 параметры «ключ» и «имя» в модуле системных настроек уязвимы для XSS. Вредоносная полезная нагрузка, отправленная в Connectors / index.php, будет запускаться каждым пользователем, когда они посещают этот модуль. | |||||||||||||||||||
12 | CVE-2017-9071 | 79 | | XSS | 18.05.2017 | 2017-05-30 | 2.6 | Нет | Пульт ДУ | Высокая | Не требуется | Нет | Частично | Нет | |||||
В MODX Revolution до 2.5.7 злоумышленник мог запустить XSS, вставив полезную нагрузку в заголовок HTTP-хоста запроса. Это можно использовать только в сочетании с другими проблемами, такими как отравление кеша. | |||||||||||||||||||
13 | CVE-2017-9070 | 79 | | XSS | 18.05.2017 | 2017-05-30 | 3.5 | Нет | Пульт ДУ | Средний | ??? | Нет | Частично | Нет | |||||
В MODX Revolution до 2.5.7 пользователь с разрешениями на редактирование ресурсов может вставлять полезные данные XSS в заголовок любого сообщения с помощью параметра pagetitle в файле connector / index.php. | |||||||||||||||||||
14 | CVE-2017-9069 | 434 | | Exec Code | 18.05.2017 | 2017-05-30 | 6.5 | Нет | Пульт ДУ | Низкий | ??? | Частично | Частично | Частично | |||||
В MODX Revolution до 2.5.7 пользователь с разрешениями на загрузку файлов может выполнять произвольный код, загружая файл с именем .htaccess. | |||||||||||||||||||
15 | CVE-2017-9068 | 79 | | XSS | 18.05.2017 | 2017-05-30 | 4.3 | Нет | Пульт ДУ | Средний | Не требуется | Нет | Частично | Нет | |||||
В MODX Revolution до 2.5.7 злоумышленник может активировать Reflected XSS, вводя полезные данные в несколько полей на странице настройки, что демонстрируется параметром database_type. | |||||||||||||||||||
16 | CVE-2017-9067 | 22 | | Реж.Trav. | 18.05.2017 | 2017-05-31 | 4,4 | Нет | Местный | Средний | Не требуется | Частично | Частично | Частично | |||||
В MODX Revolution до 2.5.7, когда используется PHP 5.3.3, злоумышленник может включать и выполнять произвольные файлы на веб-сервере из-за недостаточной проверки параметра действия для настройки / индексации.php, он же обход каталога. | |||||||||||||||||||
17 | CVE-2017-8115 | 22 | | Реж. Trav. + Информация | 2017-04-25 | 2017-05-05 | 5,0 | Нет | Пульт ДУ | Низкий | Не требуется | Частично | Нет | Нет | |||||
Обход каталога в setup / processors / url_search.php (также известная как страница поиска неиспользуемого процессора) в MODX Revolution 2.5.7 может позволить удаленным злоумышленникам получить информацию о системном каталоге. | |||||||||||||||||||
18 | CVE-2017-7324 | 94 | | Exec Code | 2017-03-30 | 2020-01-10 | 7,5 | Нет | Пульт ДУ | Низкий | Не требуется | Частично | Частично | Частично | |||||
настройка / шаблоны / findcore.php в MODX Revolution 2.5.4-pl и ранее позволяет удаленным злоумышленникам выполнять произвольный код PHP с помощью параметра core_path. | |||||||||||||||||||
19 | CVE-2017-7323 | | Exec Code | 2017-03-30 | 2020-01-10 | 6,8 | Нет | Пульт ДУ | Средний | Не требуется | Частично | Частично | Частично | ||||||
Функции (1) обновления и (2) установки пакетов в MODX Revolution 2.5.4-pl и более ранние версии по умолчанию используют http://rest.modx.com, что позволяет злоумышленникам «злоумышленник посередине» подделывать серверы и запускать выполнение произвольного кода, используя отсутствие механизма защиты HTTPS. | |||||||||||||||||||
20 | CVE-2017-7322 | 295 | | Exec Code | 2017-03-30 | 2020-01-10 | 6.8 | Нет | Пульт ДУ | Средний | Не требуется | Частично | Частично | Частично | |||||
Функции (1) обновления и (2) установки пакетов в MODX Revolution 2.5.4-pl и ранее не проверяют сертификаты X.509 от серверов SSL, что позволяет злоумышленникам-посредникам подделывать серверы и запускать выполнение произвольного кода через созданный сертификат. | |||||||||||||||||||
21 | CVE-2017-7321 | 94 | | Exec Code | 2017-03-30 | 2020-01-10 | 7,5 | Нет | Пульт ДУ | Низкий | Не требуется | Частично | Частично | Частично | |||||
настройка / контроллеры / добро пожаловать.php в MODX Revolution 2.5.4-pl и ранее позволяет удаленным злоумышленникам выполнять произвольный PHP-код с помощью параметра config_key в URI-адресе setup / index.php? action = welcome. | |||||||||||||||||||
22 | CVE-2017-7320 | 79 | | DoS XSS Http R.Spl. | 2017-03-30 | 2020-01-10 | 4.3 | Нет | Пульт ДУ | Средний | Не требуется | Нет | Частично | Нет | |||||
setup / controllers / language.php в MODX Revolution 2.5.4-pl и ранее некорректно ограничивает параметр языка, что позволяет удаленным злоумышленникам проводить атаки типа Cookie-Bombing и вызывать отказ в обслуживании (исчерпание квоты cookie) или проводить HTTP Атаки с разделением ответа с результирующим XSS через недопустимое значение параметра. | |||||||||||||||||||
23 | CVE-2016-10039 | 22 | | Реж. Trav. Включение файла | 2016-12-24 | 2019-11-14 | 7,5 | Нет | Пульт ДУ | Низкий | Не требуется | Частично | Частично | Частично | |||||
Обход каталога в / connector / index.php в MODX Revolution до 2.5.2-pl позволяет удаленным злоумышленникам выполнять включение / обход / обработку локальных файлов с помощью созданного параметра dir, связанного с браузером / каталогом / getfiles. | |||||||||||||||||||
24 | CVE-2016-10038 | 22 | | Реж. Trav. Включение файла | 2016-12-24 | 29.12.2016 | 7.5 | Нет | Пульт ДУ | Низкий | Не требуется | Частично | Частично | Частично | |||||
Обход каталогов в /connectors/index.php в MODX Revolution до 2.5.2-pl позволяет удаленным злоумышленникам выполнять включение / обход / манипуляции с локальным файлом с помощью созданного параметра dir, связанного с браузером / каталогом / remove. | |||||||||||||||||||
25 | CVE-2016-10037 | 22 | | Реж.Trav. Включение файла | 2016-12-24 | 2019-11-14 | 7,5 | Нет | Пульт ДУ | Низкий | Не требуется | Частично | Частично | Частично | |||||
Обход каталогов в /connectors/index.php в MODX Revolution до 2.5.2-pl позволяет удаленным злоумышленникам выполнять включение / обход / манипуляции с локальным файлом через созданный параметр id (он же dir), связанный с браузером / каталогом / getlist. | |||||||||||||||||||
26 | CVE-2015-6588 | 79 | | XSS | 2017-08-29 | 2017-09-02 | 4,3 | Нет | Пульт ДУ | Средний | Не требуется | Нет | Частично | Нет | |||||
Уязвимость межсайтового скриптинга (XSS) в login-fsp.html в MODX Revolution до 1.9.1 позволяет удаленным злоумышленникам внедрять произвольный веб-скрипт или HTML через QUERY_STRING. | |||||||||||||||||||
27 | CVE-2014-8992 | 79 | | XSS | 2014-12-22 | 2019-10-22 | 4,3 | Нет | Пульт ДУ | Средний | Не требуется | Нет | Частично | Нет | |||||
Уязвимость межсайтового скриптинга (XSS) в manager / assets / fileapi / FileAPI.flash.image.swf в MODX Revolution 2.3.2-pl позволяет удаленным злоумышленникам внедрять произвольный веб-скрипт или HTML через параметр обратного вызова. | |||||||||||||||||||
28 | CVE-2014-8775 | 200 | | + Информация | 2014-12-03 | 2019-10-22 | 5,0 | Нет | Пульт ДУ | Низкий | Не требуется | Частично | Нет | Нет | |||||
MODX Revolution 2.x до 2.2.15 не включает флаг HTTPOnly в заголовок Set-Cookie для файла cookie сеанса, что упрощает удаленным злоумышленникам получение потенциально конфиденциальной информации через доступ сценария к этому cookie. | |||||||||||||||||||
29 | CVE-2014-8774 | 79 | | XSS | 2014-12-03 | 2019-10-22 | 4.3 | Нет | Пульт ДУ | Средний | Не требуется | Нет | Частично | Нет | |||||
Уязвимость межсайтового скриптинга (XSS) в файле manager / index.php в MODX Revolution 2.x до 2.2.15 позволяет удаленным злоумышленникам внедрять произвольный веб-скрипт или HTML через параметр context_key. | |||||||||||||||||||
30 | CVE-2014-8773 | 352 | | Обход CSRF | 2014-12-03 | 2019-10-22 | 6.8 | Нет | Пульт ДУ | Средний | Не требуется | Частично | Частично | Частично | |||||
MODX Revolution 2.x до 2.2.15 позволяет удаленным злоумышленникам обходить механизм защиты от подделки межсайтовых запросов (CSRF), (1) опуская токен CSRF или используя длинную строку (2) в параметре токена CSRF. | |||||||||||||||||||
31 | CVE-2014-5451 | 79 | | XSS | 2014-11-06 | 2018-10-09 | 4.3 | Нет | Пульт ДУ | Средний | Не требуется | Нет | Частично | Нет | |||||
Уязвимость межсайтового скриптинга (XSS) в manager / templates / default / header.tpl в MODX Revolution 2.3.1-pl и ранее позволяет удаленным злоумышленникам внедрять произвольный веб-скрипт или HTML через параметр «a» в manager /. ПРИМЕЧАНИЕ: эта проблема возникает из-за регрессии CVE-2014-2080. | |||||||||||||||||||
32 | CVE-2014-2736 | 89 | | Exec-код Sql | 2014-04-24 | 2019-10-22 | 7,5 | Нет | Пульт ДУ | Низкий | Не требуется | Частично | Частично | Частично | |||||
Множественные уязвимости SQL-инъекций в MODX Revolution до 2.2.14 позволяет удаленным злоумышленникам выполнять произвольные команды SQL через (1) идентификатор сеанса (PHPSESSID) для index.php или удаленным аутентифицированным пользователям выполнять произвольные команды SQL через параметр (2) user для Connectors / security / message.php или (3 ) id в manager / index.php. | |||||||||||||||||||
33 | CVE-2014-2311 | 89 | | Exec-код Sql | 2014-03-11 | 2019-10-22 | 7.5 | Нет | Пульт ДУ | Низкий | Не требуется | Частично | Частично | Частично | |||||
Уязвимость SQL-инъекции в modx.class.php в MODX Revolution 2.0.0 до 2.2.13 позволяет удаленным злоумышленникам выполнять произвольные команды SQL через неопределенные векторы. | |||||||||||||||||||
34 | CVE-2014-2080 | 79 | | XSS | 2014-03-01 | 2015-07-30 | 4.3 | Нет | Пульт ДУ | Средний | Не требуется | Нет | Частично | Нет | |||||
Уязвимость межсайтового скриптинга (XSS) в файле manager / templates / default / header.tpl в ModX Revolution до 2.2.11 позволяет удаленным злоумышленникам внедрять произвольный веб-скрипт или HTML через параметр «a». | |||||||||||||||||||
35 | CVE-2010-5278 | 22 | 1 | Реж.Trav. | 2012-10-07 | 2020-01-10 | 4,3 | Нет | Пульт ДУ | Средний | Не требуется | Частично | Нет | Нет | |||||
Уязвимость обхода каталогов в manager / controllers / default / resource / tvs.php в MODx Revolution 2.0.2-pl и, возможно, ранее, когда magic_quotes_gpc отключена, позволяет удаленным злоумышленникам читать произвольные файлы через файл.. (точка, точка) в параметре class_key. ПРИМЕЧАНИЕ: некоторые из этих сведений получены из сторонней информации. |
Индекс / ядро / модель / modx / процессоры / система
Имя | Последнее изменение | Размер | Описание | |
---|---|---|---|---|
Родительский каталог | — | — | ||
список действий.inc.php | 2011-11-09 11:09 | 7.3K | ||
activeresource / | 2012-09-01 21:01 | — | ||
charset / | 2012-08-19 06:56 | — | ||
карта классов / | 2012-09-01 21:14 | — | ||
clearcache.php | 2011-11-09 11:09 | 4.1K | ||
config.js.php | 2011-11-09 11:09 | 4.1K | ||
config_check.inc.php | 2011-11-09 11:09 | 4.9K | ||
console.php | 2011-11-09 11:09 | 3.3K | ||
contenttype / | 2013-03-04 03:27 | — | ||
страна / | 2013-03-04 08:28 | — | ||
таблица базы данных / | 2012-09-02 09:37 | — | ||
загрузка выход.php | 2011-11-09 11:09 | 1.3K | ||
errorlog / | 2012-09-02 18:37 | — | ||
событие / | 2012-09-03 03:08 | — | ||
filesys / | 2011-11-27 15:27 | — | ||
импорт / | 2011-11- 09 11:09 | — | ||
информация.php | 2011-11-09 11:09 | 1.3K | ||
язык / | 2012-09-03 04:14 | — | ||
журнал / | 2012-09-03 09:53 | — | ||
меню / | 2013-03-04 12:30 | — | ||
phpinfo.php | 2011-11-09 11:09 | 185 | ||
phpthumb.php | 2011-11-09 11:09 | 2.2K | ||
реестр / | 2011-11-27 15:27 | — | ||
remove_locks.php | 2011-11-09 11:09 | 601 | ||
rte / | 09-03 10:33 | — | ||
настройки / | 2012-09-03 11:07 | — | ||
Индекс / site / core / модель / modx / процессоры / система
Название | Последнее изменение | Размер | Описание | ||
---|---|---|---|---|---|
Родительский каталог | — | — | |||
список действий.inc.php | 2020-03-27 03:22 | 7.5K | |||
activeresource / | 2020-03-27 03:22 | — | |||
кодировка / | 2020-03-27 03:22 | — | |||
карта классов / | 2020-03-27 03:22 | — | |||
clearcache.201class.php | 2020-03-27 03:22 | 6.5K | |||
config.js.class.php | 2020-03-27 03:22 | 7.9K | |||
config_check.inc.php | 2020-03-27 03:22 | 12K | |||
console.class.php | 2020-03-27 03:22 | 4.0K | |||
contenttype / | 2020-03-27 03:22 | — | |||
страна / | 2020-03-27 03:22 | — | |||
приборная панель / | 2020-03-27 03:22 | — | |||
таблица базы данных / | 2020-03-27 03:22 | — | |||
производные / | 2020-03-27 03:22 | 077 — | 01 | ||
загрузка выход.class.php | 2020-03-27 03:22 | 2.2K | |||
errorlog / | 2020-03-27 03:22 | — | |||
событие / | 2020-03-27 03:22 | — | |||
filesys / | 2020-03-27 03:22 | — | |||
импорт / | 2020- 03-27 03:22 | — | |||
информация.class.php | 2020-03-27 03:22 | 1.9K | |||
язык / | 2020-03-27 03:22 | — | |||
журнал / | 2020-03-27 03:22 | — | |||
меню / | 2020-03-27 03:22 | — | |||
phpinfo.class.php | 2020-03-27 03:22 | 712 | |||
phpthumb.class.php | 2020-03-27 03:22 | 3.2K | |||
refreshuris.class.php | 2020-03-27 03:22 | 929 | |||
/ | 2020-03-27 03:22 | — | |||
remove_locks.class.php | 2020-03-27 03:22 | 1.1K | |||
rte / | 2020-03-27 03:22 | — | |||
настройки / | 2020-03-27 03:22 | — | |||