parserALT
Страницы форума: ← Назад | 1 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 600 | Дальше →

Parser vs nconvert

#1Ильяс
05.04.10 17:38 / 18:15
www.parser.ru → | ответить → | в избранное →

Parser vs nconvert

Только что обновил Parser с версии 3.1.6 до 3.4.0 на 2 сайтах и обнаружил, что на обоих перестал работать параметр bKeepRatio у nconvert.

Это глюк парсера, нконверта или меня?
#2Misha v.3
→ Ильяс [#1] | 05.04.10 18:48
www.parser.ru → | ответить → | в избранное →
в парсере специально передачу параметра bKeepRatio не запрещали :)

насколько я помню, в классах от Den Kulikoff была ошибка, и как раз с этим параметром. но вы не показываете код, не сообщаете что вы используете, поэтому ничего вразумительного вам подсказать невозможно.
#3Dep
→ Ильяс [#1] | 06.04.10 07:47
www.parser.ru → | ответить → | в избранное →
Не уверен, что этот случай, но недавно наступил на ошибку в классе Img.p в методе @watermark[] (строка 215) — там лишняя "]" в конце стоит.
#4Ильяс
→ Misha v.3 [#2] | 06.04.10 10:13
www.parser.ru → | ответить → | в избранное →
Подключается так:
^use[NConvert.p]
$oImg[^NConvert::create[
  $.sScriptPath[/../cgi-bin]
  $.sScriptName[nconvert]
]]


Используется так:

^oImg.resize[/pic/catalog/temp.jpg;/pic/catalog/small/${last_id}.jpg;150;;$.bKeepRatio(1)]
#5Misha v.3
→ Ильяс [#4] | 06.04.10 10:31
www.parser.ru → | ответить → | в избранное →
а как вы эту-же проблему решили «не срабатывает $.bKeepRatio(1)»?
#6Ильяс
→ Misha v.3 [#5] | 06.04.10 12:23 / 12:24
www.parser.ru → | ответить → | в избранное →

Решил в лоб

$photo[^image::measure[/pic/catalog/temp.jpg]]
$k[^eval($photo.width / $photo.height)]
$width[150]
$height[^eval($width * $k)]
^oImg.resize[/pic/catalog/temp.jpg;/pic/catalog/${last_id}.jpg;$width;$height;$.bKeepRatio(1)]


Но в тот раз я подумал что проблема в хостере или ОС.
#7max_rip
→ Ильяс [#1] | 11.04.10 00:37
www.parser.ru → | ответить → | в избранное →

это бага vs фича парсера или самого класса мне знаний не хватает

потратил около часа, для понятия почему не воркает.
и так что имеем.
на старых версиях при выполнение exec
на выхлопе всегда получали -resize пробел ширина пробел высота
если какого-то параметра не хватало было
-resize пробел пробел высота
а конвертер чувствителен к пробелам и требует две цифры или пробелы при её отсутсвии
временно решил
заменой
$.sWidth[$sWidth]
$.sHeight[$sHeight]

на
$.sWidth[^if(def $sWidth){$sWidth}{ }]
$.sHeight[^if(def $sHeight){$sHeight}{ }]

хоть теперь и получаем на выходе аж 3 пробела, но вроде воркает.
#8Misha v.3
→ max_rip [#7] | 11.04.10 05:08
www.parser.ru → | ответить → | в избранное →

спасибо за информацию

по моему последние версии стали "подавлять" выдачу пустых параметров.

если кто-то ещё подтвердит, что проблема именно в этом (что немного странно, т.к. речь идёт о keep ratio), то думаю лучше будет подправить классы, чтобы они прямо в exec выводили:
;-resize;$hParams.sWidth ;$hParams.sHeight ;


или
;-resize;^if(def $hParams.sWidth){$hParams.sWidth}{ };^if($hParams.sHeight){$hParams.sHeight}{ };


или вообще переделать всё это на передачу параметров в виде таблицы, т.к. это уже присутствует в парсере достаточно давно (аж с версии 3.2.2)
#9max_rip
→ Misha v.3 [#8] | 11.04.10 22:36
www.parser.ru → | ответить → | в избранное →

скрипт для проверки

Заменяем оригинальный файл конвертера на вот этот скриптик
#!/bin/sh
echo "$*" > /tmp/test.txt

ну куда вывод делать, догадаются поправить +)
Страницы форума: ← Назад | 1 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 600 | Дальше →