Получение списка медиа в umbraco
Вопрос
Я только начинаю играть с системой XSLT в umbraco, где я надеялся создать макрос, в котором перечислены все медиафайлы в определенном медиа-каталоге. Я сталкивался с umbraco.library: GetMedia, но, честно говоря, я не знаю, что ему передать, чтобы получить список предметов. Документы по API можно найти по адресу http://umbraco.org/apiDocs/html/M_umbraco_library_het<. > Похоже, мне кажется, что я хочу найти узел (как?), а затем передать его с помощью
umbraco.library:GetMedia(<some node id>, true)
Как мне получить исходный идентификатор узла?
Впоследствии бы что-то вроде этой работы?
<xsl:for-each select="umbraco.library:GetMedia(<SOMEMAGIC>, 'true')">
<li>
<a href="{umbraco.library:NiceUrl(@id)}">
<xsl:value-of select="@nodeName"/>
</a>
</li>
</xsl:for-each>
Решение 2
Благодаря некоторой большой помощи от людей на форумах по умбрако я понял это. Поток здесь и Решение в основном это XSLT
<xsl:for-each select="umbraco.library:GetMedia($currentPage/data [@alias='mediaDir'], 'true')/node">
<li>
<xsl:choose>
<xsl:when test="umbraco.library:GetMedia(@id, 'false')/data [@alias = 'umbracoFile']">
<a><xsl:attribute name="href">
<xsl:value-of select="umbraco.library:GetMedia(@id, 'false')/data [@alias = 'umbracoFile']"/>
</xsl:attribute>
<xsl:value-of select="@nodeName"/>
</a>
</xsl:when>
<xsl:otherwise>
<!--Do something with the directory-->
</xsl:otherwise>
</xsl:choose>
</li>
</xsl:for-each>
в сочетании с элементом управления медиа-выбора на странице. Р>
Другие советы
Вот тот же код, но обновленный для работы с Umbraco 4.5 или новее:
<xsl:variable name="images" select="umbraco.library:GetMedia($currentPage/mediaDir, 1)" />
<xsl:for-each select="$images/*">
<li>
<xsl:choose>
<xsl:when test="string(local-name()) = 'Image'">
<a>
<xsl:attribute name="href">
<xsl:value-of select="./umbracoFile"/>
</xsl:attribute>
<xsl:value-of select="@nodeName"/>
</a>
</xsl:when>
<xsl:otherwise>
<!--Do something with the directory-->
</xsl:otherwise>
</xsl:choose>
</li>
</xsl:for-each>