質問
特定のメディアディレクトリの下にあるすべてのメディアをリストするマクロを作成することを望んでいたumbracoのXSLTシステムで遊んでいるところです。 umbraco.library:GetMediaに出くわしましたが、率直に言って、アイテムのリストを取得するために何を渡すべきかわかりません。
umbraco.library:GetMedia(<some node id>, true)
初期ノードIDを取得するにはどうすればよいですか
その後、このようなものが機能しますか?
<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
umbracoフォーラムで私が理解した人々からのいくつかの大きな助けに感謝します。スレッドはこちらおよびソリューションは基本的にこの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>
所属していません StackOverflow