![]() |
автоизменение размера изображений.
Перевожу сайт на typo3. До этого на нём стояла самописная cms, которая работала с изображениями следующим образом: закачивалась картинка, а потом, при выводе её в браузер, с помощью скрипта размеры автоматически изменялись до заданных в шаблоне средствами GD.
Можно ли средствами typo3 либо сохранить такую же структуру, либо ресайзить изображения при их закачке? Либо придётся, всё-таки изменять их размер вручную? |
Цитата:
Не понятно в чем проблема |
У меня это реализовано в плагине.
В одно из его полей заливается картинка. Абсолютно в таком же виде в каком она была до заливки она пишется в /uploads/ Далее надо вывести её на экран. И при обращении по пути /uploads/имя_файла выводится она же, неизменённого размера. Вот проблема в том, как изменить размер в этом случае. Дополнительного поля, в котором задаются требуемые размеры картинки я не нашёл. |
что-то я не пойму в чем дело...
есть вагон и маленькая тележка всяких галерей, которые ресайзят изображения - посмотрите как там это сделано (как рендеринг cObject вызывается в PHP) Если нужно через TS - то можно посмотреть css_styled_content ну и доки конечно. |
доки я смотрел, так ничего путного не нашёл.
а галереи посмотреть почему-то не догадался :) спасибо, как найду решение -- напишу сюда. |
всё кончилось тем, что написал ещё один скрипт, который уменьшает картинку с помощью Gd и выводит её браузеру.
|
хе... вместо того, чтобы чуть почитать доки (TSRef) и/или покопаться в коде)
cObject->IMAGE($conf), где $conf = array( "file" = $my_file, "file." = array( "maxW" = $my_width, "maxH" = $my_height ) ); за код не очень уверен, но что-то похожее. |
К сожалению, я только начинаю разбираться с typo3, поэтому пока не совсем понял что можно сделать через TS и в какую сторону копать в таких ситуациях :(
У меня при вызове $cObject->IMAGE($conf) вылезает Fatal error: Call to a member function on a non-object. На сколько я понимаю, у меня нет объекта IMAGE. Но как задать его, создавая extension через kickstarter, я не знаю. Да и не только через kickstarter, тоже. |
в плагин текущий объект типа tslib_cObj передается в переменную cObj.
Вызывать в методах плагина нужно так: Код:
$this->cObj->IMAGE($conf) |
Наверное я что-то принципиальное не понимаю.
Я создал два экстеншна. В первом полностью описал таблицы базы. Во втором уже во фронтенде -- делаю выборку из базы $query=$GLOBALS['TYPO3_DB']->SELECTquery() и так далее. Из базы я получаю название файла с картинкой. Далее с этой картинкой произвожу манипуляции по уменьшению. Я не понимаю, куда можно дописать $this->cObj->IMAGE($conf), т.к. $this->cObj->IMAGE не существует. У меня нету объекта IMAGE, у меня есть поле из базы с названием картинки. Нашёл, что-то подобное в экстеншне lz_gallery, но там, как я понял из кода, всё тоже делается вручную через imagemagick. |
Работающий код
PHP код:
Причем если картинку нужно как-то изменить, это будет произведено и src будет уже на измененную картинку. |
Спасибо.
Теперь картинка выводится, но неизменённого размера :) Код:
foreach ($clientlist as $client) { |
ищите баг... все должно работать) и почему в коде 50, а в хтмл 100?
|
Вот в том-то и весь фикус, что непонятно :)
Такое впечатление, что на строчки 'maxW' => 50,'maxH' => 50, движок не обращает внимания, и выдаёт жпеги без преобразований. Потому что исходные картинки как раз 100x100 и есть. |
А при этом случаем не нужно в TSConfig экстеншна описать что image = IMAGE и так далее? Ну или что-нибудь в этом роде?
Я в видеоуроке под названием fepi_05_rendering_the_image подсмотрел. Автор в основном классе описал Код:
$imgTSConfig = $this->conf['coverImageCObject']; Код:
plugin.user_cdcollection_pi1 { правда как создать через кикстартер этот файл я не нашёл.. Видеоурок, кстати, делался для typo3 3.5.0, может с тех времён что-нибудь изменилось. |
Цитата:
Этот TS код, который вы привели передается в экстеншн в виде распасенного масива. Выше просто используется уже готовый такой массив, сделанный своими руками. |
понял, спасибо.
тогда я совсем не понимаю, почему у меня не меняется размер картинок :( |
Цитата:
PHP код:
|
print_r ($img_conf);
Код:
Array Код:
<img src="fileadmin/templates/images/a_018.jpg" width="100" height="100" border="0" alt="" title="" /> |
Цитата:
|
именно.
но вышеприведённый код её размер изменить должен, по идее. |
Цитата:
посмотрите в Install tool |
Если картинке 100х100 ей передавать
'maxW' => 20, 'maxH' => 20 то тоже ноль реакции. Может для этого какой-нибудь imagemagick обязательно нужен, а GD недостаточно? Я уже не знаю на что думать. Я тут зашёл в install tool и проверил scaling images. Ответ был таков: Test skipped Use of ImageMagick has been disabled in the configuration. Refer to section 'Basic Configuration' to change or review you configuration settings |
Часовой пояс GMT +4, время: 16:01. |
Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot