UMIhelp

Разработка сайта на UMI.CMS => Шаблоны TPL => Тема начата: yk_qv от 07 Апреля 2017, 14:07:42

Название: Вывести набор изображений
Отправлено: yk_qv от 07 Апреля 2017, 14:07:42
Здравствуйте, помогите с выводом Набора изображений?

Добавил в шаблон данных объекта каталога новое поле  - "Изображения товара" и задал свойство "Набор изображений"

Как мне в tpl вывести ВСЕ изображения объекта из этого поля?

И вывести их полный размер и урезанный, makeThumbnail() ?
Название: Re: Вывести набор изображений
Отправлено: aghigay от 09 Апреля 2017, 21:59:34
Не уверен, что в TPL вообще встроили возможность работать с набором изображений. Предполагаю, что если она там существует, то должна примерно так же выглядеть, как и в XSLT и в PHP. Рекомендую отказаться от использования TPL
Название: Re: Вывести набор изображений
Отправлено: yk_qv от 10 Апреля 2017, 11:01:41
Не уверен, что в TPL вообще встроили возможность работать с набором изображений. Предполагаю, что если она там существует, то должна примерно так же выглядеть, как и в XSLT и в PHP. Рекомендую отказаться от использования TPL

Хорошо, можете тогда сказать как сделать кастомный макрос для вывода пула изображений?

Я нашел вот что:
-----------------------------------------------------------
public function getMultipleImage($page_id, $filed_name, $template = 'default'){
list($template_items, $template_item) = def_module::loadTemplates("content/multiple_image/{$template}.tpl", "multiple_image_items", "multiple_image_item");

$hierarchy = umiHierarchy::getInstance();
$page = $hierarchy->getElement($page_id);
$val = $page->getValue($filed_name);

foreach($val as $k){
    $line_arr = array();
    $id = $k->getId();
   
    $line_arr['attribute:file_path'] = $k->getFilePath();
    $line_arr['attribute:file_src'] =  substr($k->getFilePath(), 1);
    $line_arr['attribute:alt'] = $k->getAlt();
   
    $lines[] = def_module::parseTemplate($template_item, $line_arr);
}

$block_arr['subnodes:items'] = $lines;

return def_module::parseTemplate($template_items, $block_arr);
}
[/tt]

--------------------------------------------------------------------------
$FORMS = Array();
$FORMS['multiple_image_items'] = <<
%items%

END;

$FORMS['multiple_image_item'] = <<
%system makeThumbnailFull(%file_path%, 200, 150, default, 0, 1, 5, 0, 100)%

END;
---------------------------------------------------------------

Но куда это добавить? и как вызвать макрос в который передам параметр id товара чтобы вывести изображения?
Название: Re: Вывести набор изображений
Отправлено: aghigay от 10 Апреля 2017, 13:42:51
Насколько я вижу по коду, вы работаете со свойством "набор изображений" ровно так же, как и с любым другим свойством:
%data getProperty(%page_id%, 'название свойства набора изображений', 'шаблон для отображения')%

Эту конструкцию вы реализуете в стандартном формате: выводите там, где нужно.

В "Шаблоне для отображения" прописываете реакцию на:
'multiple_images', 'multiple_images_empty', 'multiple_images_item'

Что внутри - можно посмотреть в файле \classes\modules\data\class.php в функции renderMultipleImageFiles
Название: Re: Вывести набор изображений
Отправлено: yk_qv от 14 Апреля 2017, 17:23:13
Насколько я вижу по коду, вы работаете со свойством "набор изображений" ровно так же, как и с любым другим свойством:
%data getProperty(%page_id%, 'название свойства набора изображений', 'шаблон для отображения')%

Эту конструкцию вы реализуете в стандартном формате: выводите там, где нужно.

В "Шаблоне для отображения" прописываете реакцию на:
'multiple_images', 'multiple_images_empty', 'multiple_images_item'

Что внутри - можно посмотреть в файле \classes\modules\data\class.php в функции renderMultipleImageFiles

Пишу так

%data getProperty(%id%, 'izobrazheniya_tovara', 'multiple_img')%

создал в папке data файл multiple_img.tpl
залил в него

$FORMS = Array();
$FORMS['multiple_images'] = <<
%items%

END;

$FORMS['multiple_images_item'] = <<
%system makeThumbnailFull(%file_path%, 200, 150, default, 0, 1, 5, 0, 100)%

END;

ничего не выводится, осталось сделать только набор изображений а в итоге никаких доков нету.

как все таки вывести в тпл?
Название: Re: Вывести набор изображений
Отправлено: yk_qv от 14 Апреля 2017, 17:45:14
Решил проблему) Спасибо, оказалось что были ошибки в multipe_img.tpl
Название: Re: Вывести набор изображений
Отправлено: pandus от 22 Мая 2017, 10:52:41
Поначалу data getProperty не мог выводить набор изображений, но потом допилили. Нестандартный способ вывода набора изображений для tpl: http://www.saitadmin.ru/stati/rabota-s-naborom-izobrazhenij-multiple_image-tpl-v-umi-cms/