Sitecore: синтаксис для sc:item
Я хочу создать что-то вроде этого
<xsl:variable name="content" select="sc:item('{110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9}',.)" />
Но идентификатор будет определен после того, как пользователь выберет некоторые элементы. Каков правильный синтаксис для этого?
Я пробовал несколько:
<xsl:variable name="content"><xsl:value-of select="bla bla bla" /> </xsl:variable>
<xsl:variable name="content" select="sc:item(<value-of select="bla bla bla" >,.)" />
но не повезло, что все получилось правильно.
1 ответ
Я не уверен, чего вы здесь добиваетесь, но в вашем XSL вам нужно получить ID или путь к элементу (ам), с которым вы работаете, чтобы передать функции sc: item. Вы можете использовать, например, что-то вроде этого:
<xsl:variable name="content" select="sc:item($sc_currentitem/@id,.)" />
или вы можете использовать список элементов и перебирать их так:
<xsl:for-each select="$itemList/item">
<xsl:value-of select="@id" />
</xsl:for-each>
РЕДАКТИРОВАТЬ:
Если вы хотите получить выбранные элементы из списка древовидных, вы можете выбрать несколько элементов, и идентификаторы будут объединены с символом канала. Вы можете использовать код, подобный этому, чтобы прочитать itemID и получить соответствующие элементы:
<xsl:for-each select="sc:Split('FieldName',$sc_currentitem)">
<xsl:variable name="item" select="sc:item(text(), $sc_currentitem)" />
<xsl:value-of select="$item/@name" /><br />
</xsl:for-each>
Эта часть отображает только название предмета, но, конечно, вы можете делать с ним все, что захотите.
Если это по-прежнему не работает, попробуйте вывести на экран некоторые значения, такие как идентификатор выбранных элементов, используя <xsl:value-of select="@id" />
внутри для каждого.