Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Разработка расширений / TYPO3 extension development (http://forum.typo3.ru/forumdisplay.php?f=38)
-   -   Работа с картинками (http://forum.typo3.ru/showthread.php?t=9069)

Peter 08.12.2010 23:00

Работа с картинками
 
Создал расширение (каталог продукции), работает, выводит:
Наименование(ссылкой)
Изображение
Краткий текст

Множеством.
И:
Картинка и детальное описание.

Всё бы ничего, только надо бы чтобы в начале выводилась картинка ссылающаяся на внутреннюю страницу (детальное описание), а она либо открывается в новом окне (картинка), либо не показывается.
И ещё, надо чтобы картинки загружались в таком виде (детальное описание):
625.jpg
625_1.jpg
625_2.jpg
625_3.jpg

Не знаю как реализовать.
Делал расширение глядя на видео Каспера о создании СиДи коллекции.
Подскажите пожалуйста.

Peter 13.12.2010 09:31

Совсем беда...
 
Реализовать реализовал, но вот как сделать вывод кучи картинок не пойму, есть массив вида 1.jpg,2.jpg,3.jpg,4.jpg,5.jpg,6.jpg, как его вывести?
Пробовал по всякому на основе:
case "img":
$imgTSConfig=$this->conf['imgCObject.'];
$imgTSConfig['file']='uploads/tx_myextension/'.$this->internal['currentRow']['img'];
return $this->cObj->IMAGE($imgTSConfig);
break;
В этом суть вся. А ничего не получилось, то ли руки кривые, то ли совсем дурак...:)

Peter 19.12.2010 07:26

Вывод циклом реализован (переписал по другому пи1). А вот с выводом картинки Ж***. Надо вывести картинку на странице всех товаров, и чтобы она ссылалась на подробное описание товара. Не получается, ссылается либо на корень+ид, либо на саму себя, либо вообще не работает, прошу помощи, безумно срочно. П.С. Как разберусь с работой, выложу скрипты, вдруг кому поможет.:)
Решено через linkTP.

3ton 05.02.2012 15:31

столкнулся с похожей проблемой - требуется отобразить несколько картинок

хотелось бы узнать в каком состоянии решение Вашей проблемы.

в связи с тем что необходимо из имеющихся картнок отображать превьюшки и только в ссылке указывать реальный их адрес, подумываю орагнизовать работу с графикой своего расширения как в T3Blog(вставить объект картинки и выводить через тупоскрипт), только копать самому исходники долго, а найти про применяемую методику не получается...

Peter 05.02.2012 22:01

Решено было вот таким спагетти - кодом (pibase)...

Это вывод в синглВью:

...<tr><td id="prod_m">'.$imgs=$this->internal['currentRow']['internal_img'];
$imgs=explode(',',$imgs);
$imageNum=count($imgs);
reset($imgs);
$cc=0;
foreach ($imgs AS $img) {
if($cc==$imageNum) {
break;
}
$thumbs .=$this->mkThumbs($img,$cc);
$cc++;
}
$content=$thumbs;
//$this->getFieldContent('internal_img')
return $this->pi_wrapInBaseClass($content).'</td>
<td id="ctext">'.$this->getFieldContent('full_text').'</td></tr>...

Функция превьюшек:

function mkThumbs($img,$cc) {
$iimgTSConfig=$this->conf['internalImgCObject.'];
$iimgTSConfig['file']='uploads/tx_catalogneoplan/'.$img;
return $this->cObj->IMAGE($iimgTSConfig);
}

Это превьюшка в листВью (гетФилдКонтент, внимание на pi_linkTP):

case "front_img":
$fimgTSConfig = $this->conf['frontImgCObject.'];
$fimgTSConfig['file'] = 'uploads/tx_catalogneoplan/'.$this->internal['currentRow']['front_img'];
$params = array (
' tx_catalogneoplan_pi1[showUid]' => $this->internal['currentRow']['uid']
);
$imgx = $this->pi_linkTP($this->cObj->IMAGE($fimgTSConfig), $params);
return $imgx;
break;

ТСкод прямо в шаблоне:

plugin.tx_catalogneoplan_pi1.internalImgCObject.fi le.width=150
plugin.tx_catalogneoplan_pi1.internalImgCObject {
wrap=|<br />
imageLinkWrap = 1
imageLinkWrap{
bodyTag = <body bgColor=black align=center>
wrap = <a href="javascript:close();">|</a>
width = 650
height = 650
JSwindow = 1
JSwindow.newWindow = 1
JSwindow.expand = 20,20
enable = 1
}
}

3ton 05.02.2012 22:09

Цитата:

$fimgTSConfig = $this->conf['frontImgCObject.'];
$fimgTSConfig['file'] = 'uploads/tx_catalogneoplan/'.$this->internal['currentRow']['front_img'];
$params = array (
' tx_catalogneoplan_pi1[showUid]' => $this->internal['currentRow']['uid']
);
$imgx = $this->pi_linkTP($this->cObj->IMAGE($fimgTSConfig), $params);
return $imgx;
а не пробовали так реализовать???

Код:

$imgx = $this->cObj->cImage('uploads/tx_catalogneoplan/'.$this->internal['currentRow']['front_img'], $this->conf['internalImgCObject.']);
return $imgx;

просто не совсем понятно зачем pi_linkTP пользоваться

Peter 05.02.2012 22:25

Нет, не пробовал. :-)

pi_linkTP - реализация превьюшек в листинге каталога, использовал именно для этого.
В сингле не требовалось выводить картинки по чёткому адресу.
Привёл оба метода, вполне реально соединить.

Да и времени не было красивые решения искать, насяльника злая был. :-)

3ton 06.02.2012 10:46

если не секрет - как организовывали листинг в админке?

бьюсь над похожей проблемой - каталог

dmartynenko 06.02.2012 12:20

pi_linkTP - это функция генерации ссылки через typolink, к генерации превьюшек никакого отношения не имеет. В классе pibase целый набор функций для ссылок - смотрите исходник, там все понятно и с комментариями. Код 3ton делалает с превьюшки ссылку на single view записи.

3ton 06.02.2012 13:18

Цитата:

Сообщение от dmartynenko (Сообщение 33049)
Код 3ton делалает с превьюшки ссылку на single view записи.

Вы уверены, потому как описание данного функционала указывает что имея оригинальный рисунок и задав параметры превьюшки мы получаем изображение и обертку под него аналогично вставке объекта IMAGE c "указанием размеров а возможно и галочку поставить на увеличение"

прошу меня поправить если ошибаюсь...


Часовой пояс GMT +4, время: 01:22.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot