Recuperar uma lista de meios de comunicação em umbraco
Pergunta
Eu estou apenas começando a jogar com o sistema XSLT em umbraco onde eu estava esperando para produzir uma macro que listou todos os meios de comunicação em um diretório de mídia específico. Eu vim através de umbraco.library: getMedia mas, francamente, eu não tenho nenhuma idéia do que passar para ele a fim de obter uma lista de itens. Os docs api em http://umbraco.org/apiDocs/html/M_umbraco_library_GetMedia.htm parecem sugerir que o que eu provavelmente quer é olhar para cima um nó (como?) e, em seguida, passá-lo com
umbraco.library:GetMedia(<some node id>, true)
Como eu iria sobre a obtenção de que id nó inicial?
Em seguida Seria algo como este trabalho?
<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>
Solução 2
Graças ao excelente ajuda dos povos em cima da nos fóruns umbraco eu descobri-lo. O fio é aqui eo solução é basicamente este 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>
juntamente com um controle de selecionador de mídia na página.
Outras dicas
Aqui está o mesmo código, mas atualizado para trabalhar com Umbraco 4.5 ou posterior:
<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>