Работа phpthumbon с нестандартным путем картинки
Добрый день!
Сразу скажу для профи данное решение наверное покажется смешным, а вот кому-то уровнем ниже думаю в самый раз.
Буквально вчера столкнулся с проблемкой:
Есть TV типа "Смешанная загрузка файлов", которое содержит путь к загруженной картинке, но путь — /upload/123/image.jpg.
Картинки оказались загружены не обрезанными, поэтому я естественно сразу попытался вот так сделать:
Поэтому сделал следующее..
UPD: сниппет pdoResources
Сразу скажу для профи данное решение наверное покажется смешным, а вот кому-то уровнем ниже думаю в самый раз.
Буквально вчера столкнулся с проблемкой:
Есть TV типа "Смешанная загрузка файлов", которое содержит путь к загруженной картинке, но путь — /upload/123/image.jpg.
Картинки оказались загружены не обрезанными, поэтому я естественно сразу попытался вот так сделать:
<img class="pull-left" src="{$tvimage | phpthumbon : 'w=280&h=210&zc=0&f=jpg&q=80'}" alt="{$pagetitle}">
. Но ничего не получилось, потому что phpthumbon искал картинки в assets.Поэтому сделал следующее..
{var $fullpath = "upload/" ~ $tvimage}
<img class="pull-left" src="{$fullpath | phpthumbon : 'w=280&h=210&zc=0&f=jpg&q=80'}" alt="{$pagetitle}">
Тут я создал переменную fullpath, и присвоил ей модифицированный путь к картинке, состоящий из папки объединенного через оператор ~ старого значения TV.UPD: сниппет pdoResources
Комментарии: 7
Тут бы не помешало отметить, через какой сниппет выводится этот ТВ.
pdoResources должен сам подставлять полный путь к ТВ, если включен &prepareTVs=`1` (а он включен по умолчанию).
pdoResources должен сам подставлять полный путь к ТВ, если включен &prepareTVs=`1` (а он включен по умолчанию).
Справедливое замечание!
Сниппет как раз pdoResources. Не знаю, но у меня почему-то автоматически путь не учелся, и пришлось так поступить поэтому.
Сниппет как раз pdoResources. Не знаю, но у меня почему-то автоматически путь не учелся, и пришлось так поступить поэтому.
Такая «проблема» может иногда возникать, встречал.
Какой-то сниппет (не помню сейчас, какой именно) не учитывают в пути basePath источника файлов.
Проверил: pdoResources точно учитывает )
Какой-то сниппет (не помню сейчас, какой именно) не учитывают в пути basePath источника файлов.
Проверил: pdoResources точно учитывает )
getResources, getProducts для шопкипера, у них политика другая — всё должно прописываться ручками в чанке, об этом автор шопкипера сам писал как-то в перепалке с Василием, когда Василий ему указывал на это отличие в pdoTools.
Кстати, раз тут уж речь зашла про это. Использую этот сниппет в своих целях, и если я кормлю ему файл из другого места отличного от сайта но на этом же сервере — не работает. Пришлось костыльнуть, в папке с сайтом создать временную папку, куда копировать файл, вызывать сниппет и удалять этот файл из временной папки…
$options['options'] = "q=90".$imgW.$imgh.$img_zc;
$options['input'] = MODX_BASE_PATH.'temps/'.$_FILES['img']['name'];
$pr = $modx->runSnippet("phpThumbOn", $options);
copy(MODX_BASE_PATH.$pr, $to);
unlink(MODX_BASE_PATH.'temps/'.$_FILES['img']['name']);
Может быть это как то по человеческий можно?
Да, выглядит не очень…
Как вариант: хранить файлы в облаке с нужными размерами.
Например, у меня есть 2 сайта, использующие одинаковые картинки. Соответственно, хранятся они в облаке, с нужными размерами и берутся обоими сайтами оттуда.
Плюсы: никаких обработок картинок «на лету», не занимают места на сервере, CDN + картинки загружать можно только на одном сайте или вообще заливать через API, без MODX со сторонних источников.
Смотреть в сторону Swift. Респект Василию, как всегда.
Как вариант: хранить файлы в облаке с нужными размерами.
Например, у меня есть 2 сайта, использующие одинаковые картинки. Соответственно, хранятся они в облаке, с нужными размерами и берутся обоими сайтами оттуда.
Плюсы: никаких обработок картинок «на лету», не занимают места на сервере, CDN + картинки загружать можно только на одном сайте или вообще заливать через API, без MODX со сторонних источников.
Смотреть в сторону Swift. Респект Василию, как всегда.
Вот так вроде тоже должно работать:
<img class="pull-left" src="{("upload/" ~ $tvimage) | phpthumbon : 'w=280&h=210&zc=0&f=jpg&q=80'}" alt="{$pagetitle}">
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.