![]() |
Работа с картинками
Создал расширение (каталог продукции), работает, выводит:
Наименование(ссылкой) Изображение Краткий текст Множеством. И: Картинка и детальное описание. Всё бы ничего, только надо бы чтобы в начале выводилась картинка ссылающаяся на внутреннюю страницу (детальное описание), а она либо открывается в новом окне (картинка), либо не показывается. И ещё, надо чтобы картинки загружались в таком виде (детальное описание): 625.jpg 625_1.jpg 625_2.jpg 625_3.jpg Не знаю как реализовать. Делал расширение глядя на видео Каспера о создании СиДи коллекции. Подскажите пожалуйста. |
Совсем беда...
Реализовать реализовал, но вот как сделать вывод кучи картинок не пойму, есть массив вида 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; В этом суть вся. А ничего не получилось, то ли руки кривые, то ли совсем дурак...:) |
Вывод циклом реализован (переписал по другому пи1). А вот с выводом картинки Ж***. Надо вывести картинку на странице всех товаров, и чтобы она ссылалась на подробное описание товара. Не получается, ссылается либо на корень+ид, либо на саму себя, либо вообще не работает, прошу помощи, безумно срочно. П.С. Как разберусь с работой, выложу скрипты, вдруг кому поможет.:)
Решено через linkTP. |
столкнулся с похожей проблемой - требуется отобразить несколько картинок
хотелось бы узнать в каком состоянии решение Вашей проблемы. в связи с тем что необходимо из имеющихся картнок отображать превьюшки и только в ссылке указывать реальный их адрес, подумываю орагнизовать работу с графикой своего расширения как в T3Blog(вставить объект картинки и выводить через тупоскрипт), только копать самому исходники долго, а найти про применяемую методику не получается... |
Решено было вот таким спагетти - кодом (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 } } |
Цитата:
Код:
$imgx = $this->cObj->cImage('uploads/tx_catalogneoplan/'.$this->internal['currentRow']['front_img'], $this->conf['internalImgCObject.']); |
Нет, не пробовал. :-)
pi_linkTP - реализация превьюшек в листинге каталога, использовал именно для этого. В сингле не требовалось выводить картинки по чёткому адресу. Привёл оба метода, вполне реально соединить. Да и времени не было красивые решения искать, насяльника злая был. :-) |
если не секрет - как организовывали листинг в админке?
бьюсь над похожей проблемой - каталог |
pi_linkTP - это функция генерации ссылки через typolink, к генерации превьюшек никакого отношения не имеет. В классе pibase целый набор функций для ссылок - смотрите исходник, там все понятно и с комментариями. Код 3ton делалает с превьюшки ссылку на single view записи.
|
Цитата:
прошу меня поправить если ошибаюсь... |
Да, то что $this->pi_linkTP() всего-лишь оборачивает в ссылку переданную в него строку, и добавляет к url параметры из $params, я уверен. Передаваемая строка в данном случае это HTML код картинки-превьюшки (а может быть что угодно), а в $params указан uid текущей записи и больше ничего. Поэтому ссылка генерится с этим uid на текущую страницу.
То, о чем вы говорите, задается в массиве $imgTSConfig который передается в Цитата:
Цитата:
|
Организация каталога
Стандартный подход:
Категории каталога - страницы сайта с рекурсивным фронтенд плагином на основной. 0. Каталог (ФЕ плагин с бесконечной рекурсией) 1. Раздел 1 1.1. Подраздел 1 1.2. Подраздел 2 2. Раздел 2 Записи (товары) каталога - например контент элементы или своё с pid соответствующему странице каталога. Если надо чтобы записи могли иметь несколько разделов: Записи находятся в отдельной папке и имеют отдельное поле с записями вида "2,6,13,4", где через "," идут uid страниц каталога. Первый можно быстро реализовать после нарезки Кикстартером, второй надо допиливать на уровне кода. |
Организацию каталогов осуществил так же
в моем случае одна запись в одном каталоге интересует бакенд часть, а именно организация ввода и листинг записей использовали встроенный функционал или писали свои обработки??? в моем случае товар имеет специфический параметр - к одному товару относятся куча размеров (более 50) и каждый со своей ценой... вот и ломаю голову как это культурнее обработать |
Две таблицы:
Таблица с товарами tx_catalog_item: uid,pid,......,size В поле size выбираем значение из второй таблицы tx_catalog_item_param: uid,pid,...size,cost Организовать взаимосвязь можно в Кикстартере. В pi1 допилить код на вывод, чтобы он при выводе _item делал select из _item_param и вставлял в общую таблицу, можно проще сделать через JOIN. А чтобы в админке выбирать красиво, это уже flexform надо редактировать, там в принципе можно быстро разобраться. |
Цитата:
|
Цитата:
Возможно для вашего случая подошел бы свой элемент управления вида таблица размеров с inplace edit (на AJAX). Его можно реализовать как своей тип поля в записи товара. Смотрите документацию по TCA, раздел ['columns'][field name]['config'] / TYPE: "user". Но это вещь редко используемая, примеров использования я не встречал, так что придется повозиться. Но это реально сделать. Пример - экст cps_tcatree, реализует дополнительный тип элементы select в виде дерева (как в tt_news). TYPO3 весьма гибкая штука :) |
Часовой пояс GMT +4, время: 20:26. |
Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot