Добавление нескольких фотографий к описанию объекта каталога
Материал из Umicms
Версия от 12:11, 27 января 2011; Alexh (обсуждение | вклад)
Существует несколько вариантов решения данной задачи.
- В шаблонах данных, для типа "Объект каталога" создать группу полей, например "Дополнительные фотографии". В данной группе создать несколько полей типа "Изображение". Соответственно, при описания характеристик товара в данные поля необходимо будет указать изображения для товара. Далее нужно внести небольшие изменения в шаблон дизайна, который используется для отображения объекта каталога. Тут тоже есть несколько вариантов: либо выводить каждое изображение макросом %data getProperty()% В качестве параметров в данный макрос необходимо передать id-страницы с описанием товара, имя поля (содержащее изображение) и шаблон отображения (если необходим отличный от стандартного tpls/data/default.tpl)
Например, %data getProperty(%id%, 'dopfoto1', 'foto-shablon')%
Либо использовать макрос %data getPropertyGroup()% для вывода сразу всех изображений. В качестве параметра передается id страницы и имя группы, содержащей дополнительные изображения.
- Второй вариант - использовать модуль "Фотогалерея". Для каждого объекта можно создавать отдельный фотоальбом с любым количеством фотографий. В шаблонах данных для объекта каталога создать поле типа "Ссылка на дерево". При редактировании товара в этом поле указываем ссылку на фотоальбом. В шаблоне дизайна, который выводит описание товара (по умолчанию tpls/catalog/default.tpl) в блоке 'view_block' добавим макрос %photoalbum album% выводящий фотографии из указанного альбома. Пример вызова:
%photoalbum album(%data getProperty(%id%, 'имя_поля_с_ссылкой_на_дерево')%)%
Также нужно отредактировать шаблон tpls/data/default.tpl - изменить содержимое блоков symlink_block и symlink_item на следующее:
$FORMS['symlink_block'] = <<<END %items% END;
$FORMS['symlink_item'] = <<<END %id% END;
Следует учесть, что это стандартный файл шаблона, поэтому перед редактированием необходимо сделать копию данного файла для быстрого восстановления работы сайта, если будут допущены какие-либо ошибки.