Récupération d'une liste de médias dans umbraco
Question
Je commence tout juste à jouer avec le système XSLT dans umbraco où j'espérais produire une macro répertoriant tous les médias dans un répertoire de médias spécifique. Je suis tombé sur umbraco.library: GetMedia mais, franchement, je ne sais pas quoi transmettre pour obtenir une liste des éléments. Les documents de l’API sont disponibles à l'adresse http://umbraco.org/apiDocs/html/M_umbraco_library_Gibrary_GetMedia.htm semble suggérer que ce que je veux probablement est de rechercher un nœud (comment?) puis de le transmettre avec
umbraco.library:GetMedia(<some node id>, true)
Comment pourrais-je obtenir cet identifiant de noeud initial?
Par la suite, quelque chose comme ce travail fonctionnerait-il?
<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>
La solution 2
Grâce à la grande aide des personnes présentes sur les forums umbraco, j’ai compris. Le fil de discussion est ici et le la solution est fondamentalement cette 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>
associé à un contrôle de sélecteur de média sur la page.
Autres conseils
Voici le même code mais mis à jour pour fonctionner avec Umbraco 4.5 ou version ultérieure:
<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>