Добавление уже имеющихся объектов каталога в другие категории через дополнительное поле "ссылка на дерево"
Материал из Umicms
С точки зрения SEO использование "виртуальных копий" страниц, для занесения одного и того же товара в разные категории каталога не всегда является хорошим вариантом. Поэтому можно использовать следующее решение. Для категории каталога добавить поле "Ссылка на дерево" и в этом поле указывать уже имеюшиеся товары. Список категорий, в которых отмечен данный товар в качестве ссылки на дерево, можно вывести следующим образом:
<xsl:template name="other-catalog"> <h3>Этот товар отмечен в следующих разделах:</h3> <xsl:apply-templates select="document('usel://getSection')/udata/page" mode="getSection"> <xsl:with-param name="this_page" select="@id" /> </xsl:apply-templates> </xsl:template> <xsl:template match="page" mode="getSection"> <xsl:param name="this_page" /> <xsl:apply-templates select="document(concat('upage://', @id))/udata//property[@name='ssylka_na_obekt']/value/page" mode="getSectionPage" > <xsl:with-param name="this_page" select="$this_page" /> <xsl:with-param name="this_link" select="@link" /> <xsl:with-param name="this_name" select="document(concat('upage://', @id))/udata//property[@name='h1']/value" /> </xsl:apply-templates> </xsl:template> <xsl:template match="page" mode="getSectionPage"> <xsl:param name="this_page" /> <xsl:param name="this_name" /> <xsl:param name="this_link" /> <xsl:if test="$this_page = @id"> <div class="list" name="list"> - <a href="{$this_link}"><b><xsl:value-of select="$this_name" /></b></a></div> </xsl:if> </xsl:template>
Файл Usel:
<?xml version="1.0" encoding="utf-8"?> <selection> <target result="pages"> <type id="65" /> </target> <property name="ssylka_na_obekt"> <page>{1}</page> </property> </selection>
