Добавление нескольких фотографий к описанию объекта каталога — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
 
(не показано 12 промежуточных версий 3 участников)
Строка 1: Строка 1:
Существует несколько вариантов решения данной задачи.
+
'''Актуально для версии 2.9.5'''
  
#В шаблонах данных, для типа "Объект каталога" создать группу полей, например "Дополнительные фотографии". В данной группе создать несколько полей типа "Изображение". Соответственно, при описания характеристик товара в данные поля необходимо будет указать изображения для товара. Далее нужно внести небольшие изменения в шаблон дизайна, который используется для отображения объекта каталога. Тут тоже есть несколько вариантов: либо выводить каждое изображение макросом %data getProperty()% В качестве параметров в данный макрос необходимо передать id-страницы с описанием товара, имя поля (содержащее изображение) и шаблон отображения (если необходим отличный от стандартного tpls/data/default.tpl)
+
Существует несколько вариантов решения данной задачи:
 +
 
 +
== 1 Вариант ==
 +
В шаблонах данных, для типа "'''Объект каталога'''" создать группу полей, например "'''Дополнительные фотографии'''". В данной группе создать несколько полей типа "'''Изображение'''". Соответственно, при описания характеристик товара в данные поля необходимо будет указать изображения для товара. Далее нужно внести небольшие изменения в шаблон дизайна, который используется для отображения объекта каталога. Тут тоже есть несколько вариантов: <br />
 +
* либо выводить каждое изображение макросом <code>'''%data getProperty()%'''</code> В качестве параметров в данный макрос необходимо передать id-страницы с описанием товара, имя поля (содержащее изображение) и шаблон отображения (если необходим отличный от стандартного <u>tpls/data/default.tpl</u>)
  
 
Например, <source lang="php">%data getProperty(%id%, 'dopfoto1', 'foto-shablon')%</source>
 
Например, <source lang="php">%data getProperty(%id%, 'dopfoto1', 'foto-shablon')%</source>
  
Либо использовать макрос %data getPropertyGroup()%  для вывода сразу всех изображений. В качестве параметра передается id страницы и имя группы, содержащей дополнительные изображения.
+
* Либо использовать макрос <code>'''%data getPropertyGroup()%'''</code> для вывода сразу всех изображений. В качестве параметра передается id страницы и имя группы, содержащей дополнительные изображения.
 +
<br />
  
#Второй вариант - использовать модуль "Фотогалерея". Для каждого объекта можно создавать отдельный фотоальбом с любым количеством фотографий. В шаблонах данных для объекта каталога создать поле типа "Ссылка на дерево". При редактировании товара в этом поле указываем ссылку на фотоальбом. В шаблоне дизайна, который выводит описание товара (по умолчанию tpls/catalog/default.tpl)  в блоке 'view_block' добавим макрос %photoalbum album% выводящий фотографии из указанного альбома. Пример вызова:
+
'''Для xslt есть более подробный пример с шаблоном в статье [[Несколько_изображений_к_товару_средствами_дополнительных_полей]]'''
 +
 
 +
== 2 Вариант ==
 +
Второй вариант - использовать модуль "Фотогалерея". Для каждого объекта можно создавать отдельный фотоальбом с любым количеством фотографий. В шаблонах данных для объекта каталога создать поле типа "Ссылка на дерево". При редактировании товара в этом поле указываем ссылку на фотоальбом. В шаблоне дизайна, который выводит описание товара (по умолчанию <u>tpls/catalog/default.tpl</u>)  в блоке 'view_block' добавим макрос <code>'''%photoalbum album%'''</code> выводящий фотографии из указанного альбома. Пример вызова:
  
 
<source lang="php">
 
<source lang="php">
 
%photoalbum album(%data getProperty(%id%, 'имя_поля_с_ссылкой_на_дерево')%)%
 
%photoalbum album(%data getProperty(%id%, 'имя_поля_с_ссылкой_на_дерево')%)%
 
</source>
 
</source>
Также нужно отредактировать шаблон  tpls/data/default.tpl - изменить содержимое блоков symlink_block и symlink_item на следующее:
+
Также нужно отредактировать шаблон  '''tpls/data/default.tpl''' - изменить содержимое блоков <code>symlink_block</code> и <code>symlink_item</code> на следующее:
  
 +
<source lang="php">
 
$FORMS['symlink_block'] = <<<END
 
$FORMS['symlink_block'] = <<<END
 
%items%
 
%items%
Строка 21: Строка 30:
 
%id%
 
%id%
 
END;
 
END;
 +
</source>
 +
Следует учесть, что это стандартный файл шаблона, поэтому перед редактированием необходимо сделать копию данного файла для быстрого восстановления работы сайта, если будут допущены какие-либо ошибки.
  
Следует учесть, что это стандартный файл шаблона, поэтому перед редактированием необходимо сделать копию данного файла для быстрого восстановления работы сайта, если будут допущены какие-либо ошибки.
+
'''Для xslt есть более подробный пример с шаблоном в статье [[Несколько_изображений_к_товару_средствами_модуля_Фотогалереи]]'''
 +
 
 +
== 3 Вариант ==
 +
 
 +
Также, можно создать поле типа "составное", а у его элементов добавить поле типа "изображение". Данный вариант подробно описан в статье [[Несколько_изображений_к_товару_средствами_дополнительных_полей]].
 +
 
 +
== 4 Вариант ==
 +
Если Вы используете xslt шаблонизатор, то Вы можете воспользоваться статьей [[Несколько_изображений_к_товару_средствами_протокола_ufs]]. В этом способе не нужно плодить поля и использовать модуль "Фотогалереи".
 +
[[Категория:Модуль Каталог]]

Текущая версия на 15:14, 25 марта 2014

Актуально для версии 2.9.5

Существует несколько вариантов решения данной задачи:

1 Вариант

В шаблонах данных, для типа "Объект каталога" создать группу полей, например "Дополнительные фотографии". В данной группе создать несколько полей типа "Изображение". Соответственно, при описания характеристик товара в данные поля необходимо будет указать изображения для товара. Далее нужно внести небольшие изменения в шаблон дизайна, который используется для отображения объекта каталога. Тут тоже есть несколько вариантов:

  • либо выводить каждое изображение макросом %data getProperty()% В качестве параметров в данный макрос необходимо передать id-страницы с описанием товара, имя поля (содержащее изображение) и шаблон отображения (если необходим отличный от стандартного tpls/data/default.tpl)

Например,

%data getProperty(%id%, 'dopfoto1', 'foto-shablon')%
  • Либо использовать макрос %data getPropertyGroup()% для вывода сразу всех изображений. В качестве параметра передается id страницы и имя группы, содержащей дополнительные изображения.


Для xslt есть более подробный пример с шаблоном в статье Несколько_изображений_к_товару_средствами_дополнительных_полей

2 Вариант

Второй вариант - использовать модуль "Фотогалерея". Для каждого объекта можно создавать отдельный фотоальбом с любым количеством фотографий. В шаблонах данных для объекта каталога создать поле типа "Ссылка на дерево". При редактировании товара в этом поле указываем ссылку на фотоальбом. В шаблоне дизайна, который выводит описание товара (по умолчанию 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;

Следует учесть, что это стандартный файл шаблона, поэтому перед редактированием необходимо сделать копию данного файла для быстрого восстановления работы сайта, если будут допущены какие-либо ошибки.

Для xslt есть более подробный пример с шаблоном в статье Несколько_изображений_к_товару_средствами_модуля_Фотогалереи

3 Вариант

Также, можно создать поле типа "составное", а у его элементов добавить поле типа "изображение". Данный вариант подробно описан в статье Несколько_изображений_к_товару_средствами_дополнительных_полей.

4 Вариант

Если Вы используете xslt шаблонизатор, то Вы можете воспользоваться статьей Несколько_изображений_к_товару_средствами_протокола_ufs. В этом способе не нужно плодить поля и использовать модуль "Фотогалереи".