Меню левого раздела - извлечение элементов в Sitecore - PullRequest
0 голосов
/ 15 марта 2011

У меня есть следующий код меню раздела XSLT, который корректно работает для получения элементов. Но я бы хотел заменить запрос товаров именем товара, как?

 <!--<xsl:if test="contains($EnabledTemplates, concat('!', @template, '!')) ">-->
    <xsl:for-each select="$root/item[contains($EnabledTemplates, concat('!', @template, '!'))]">
      <xsl:sort select="@sortorder" data-type="number" />
      <xsl:variable name="IsHaveChild" select="boolean(./item)" />
      <xsl:variable name="IsSelected" select="boolean(./descendant-or-self::item[@id=$sc_currentitem/@id])" />
      <xsl:variable name="IsShow" select="boolean(sc:fld($IsHideFieldName,.)!=1)" />
      <xsl:variable name="IsCurrent" select="boolean(@id=$sc_currentitem/@id)" />
      <sc:sec />

Ответы [ 2 ]

1 голос
/ 15 марта 2011

Хотите отфильтровать элементы по имени?

Попробуйте что-то вроде этого:

[contains(@name, 'some text')]
0 голосов
/ 18 марта 2011

Для запроса вы можете выбрать между XPath и Sitecore query .Последний является реализацией XPath для Sitecore, которая более читаема и позволяет использовать имена элементов вместо синтаксиса XPath.

Однако запрос Sitecore нельзя поместить непосредственно в атрибут select в элементах XSL, он работает только в вспомогательных функциях Sitecore XSL, таких как sc:item (пожалуйста, также не . в sc:itemфункция для указания элемента контекста, к которому должен применяться запрос, . обозначает текущий элемент).

<!-- using XPath -->
<xsl:value-of select="/item[@key='sitecore']/item[@key='content']" />

<!-- using Sitecore query -->
<xsl:value-of select="sc:item('/sitecore/content', .)" />
...