Пример использования поля "ссылка на дерево" — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
(Новая страница: «'''Задача:''' на сайте, требуется реализовать, чтобы при просмотре объекта каталога пользова…»)
 
Строка 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) &gt; 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) &gt; 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']">