Пример использования поля "ссылка на дерево" — различия между версиями
SerjK (обсуждение | вклад)  (Новая страница: «'''Задача:''' на сайте, требуется реализовать, чтобы при просмотре объекта каталога пользова…»)  | 
				SerjK (обсуждение | вклад)   | 
				||
| Строка 3: | Строка 3: | ||
аксессуар, или "Похожий товар" и ссылка, и т.д.  | аксессуар, или "Похожий товар" и ссылка, и т.д.  | ||
| − | '''Решение:''' Заходим в модуль "Шаблоны данных". Выбираем на редактирование "Объект каталога", добавляем новое поле, ставим галочку "Видимое" и выбираем тип поля "Ссылка на дерево". Теперь при добавлении или редактировании объекта каталога мы можем увидеть, что у него появилось добавленное поле, при клике на которое, система UMI.CMS предлагает выбрать куда будет вести ссылка с данного поля   | + | '''Решение:''' Заходим в модуль "Шаблоны данных". Выбираем на редактирование "Объект каталога", добавляем новое поле (например с идентификатором property-recommended) , ставим галочку "Видимое" и выбираем тип поля "Ссылка на дерево". Теперь при добавлении или редактировании объекта каталога мы можем увидеть, что у него появилось добавленное поле, при клике на которое, система UMI.CMS предлагает выбрать куда будет вести ссылка с данного поля    | 
| − | 1.  | + | 1.При использовании xslt-шаблонизатора, необходимо написать шаблон обработчик, сохраниме его под именем recommended.xsl, выгледеть он будет так:  | 
| + | <source lang="xml">  | ||
| + | <?xml version="1.0" encoding="utf-8"?>  | ||
| + | |||
| + | <xsl:stylesheet	version="1.0"  | ||
| + | 	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  | ||
| + | 	xmlns:umi="http://www.umi-cms.ru/TR/umi">  | ||
| + | |||
| + | 	<xsl:template match="property[@name = '&property-recommended;'][count(value/page) > 0]" />  | ||
| + | |||
| + | 	<xsl:template match="property[@name = '&property-recommended;']">  | ||
| + | 		<hr />  | ||
| + | 		<h4>  | ||
| + | 			<xsl:text>C этим товаром обычно покупают:</xsl:text>  | ||
| + | 		</h4>  | ||
| + | |||
| + | 		<xsl:apply-templates select="value/page" mode="short-view">		  | ||
| + | 			<xsl:with-param name="cart_items" select="document('udata://emarket/cart/')/udata/items" />  | ||
| + | 		</xsl:apply-templates>  | ||
| + | |||
| + | 		<div class="clear"></div>  | ||
| + | 	</xsl:template>  | ||
| + | </xsl:stylesheet>  | ||
| + | </source>  | ||
| + | |||
| + | 2. В главном шаблоне каталога подключаем, ранее созданный шаблон-обработчик   | ||
| + | <xsl:include href="recommended.xsl" />  | ||
| + | |||
| + | 3. Далее в зависимости от того, где мы хотим увидеть наше поле, выводим это поле средствами xslt   | ||
| + | |||
| + | <xsl:apply-templates select=".//property[@name = '&property-recommended;']" />,  | ||
| + | например, если хотим чтобы поле показывалось при детальном просмотре объекта каталога, то такую запись нужно добавить в   | ||
| + | |||
| + | <xsl:template match="/result[@module = 'catalog' and @method = 'object']">  | ||
Версия 16:00, 7 марта 2012
Задача: на сайте, требуется реализовать, чтобы при просмотре объекта каталога пользователь под описанием товара и его характеристик видел: "С этим товаром обычно покупают" и ссылка на аксессуар, или "Похожий товар" и ссылка, и т.д.
Решение: Заходим в модуль "Шаблоны данных". Выбираем на редактирование "Объект каталога", добавляем новое поле (например с идентификатором property-recommended) , ставим галочку "Видимое" и выбираем тип поля "Ссылка на дерево". Теперь при добавлении или редактировании объекта каталога мы можем увидеть, что у него появилось добавленное поле, при клике на которое, система UMI.CMS предлагает выбрать куда будет вести ссылка с данного поля
1.При использовании xslt-шаблонизатора, необходимо написать шаблон обработчик, сохраниме его под именем recommended.xsl, выгледеть он будет так:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet	version="1.0"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
	xmlns:umi="http://www.umi-cms.ru/TR/umi">
	<xsl:template match="property[@name = '&property-recommended;'][count(value/page) > 0]" />
	<xsl:template match="property[@name = '&property-recommended;']">
		<hr />
		<h4>
			<xsl:text>C этим товаром обычно покупают:</xsl:text>
		</h4>
		
		<xsl:apply-templates select="value/page" mode="short-view">		
			<xsl:with-param name="cart_items" select="document('udata://emarket/cart/')/udata/items" />
		</xsl:apply-templates>
		
		<div class="clear"></div>
	</xsl:template>
</xsl:stylesheet>
2. В главном шаблоне каталога подключаем, ранее созданный шаблон-обработчик <xsl:include href="recommended.xsl" />
3. Далее в зависимости от того, где мы хотим увидеть наше поле, выводим это поле средствами xslt
<xsl:apply-templates select=".//property[@name = '&property-recommended;']" />, например, если хотим чтобы поле показывалось при детальном просмотре объекта каталога, то такую запись нужно добавить в
<xsl:template match="/result[@module = 'catalog' and @method = 'object']">