Frage

Ich fange gerade mit dem XSLT System in umbraco zu spielen, wo ich hoffte, ein Makro zu erzeugen, die alle Medien unter einem bestimmten Medienverzeichnis aufgelistet. Ich habe über umbraco.library kommen: GetMedia aber, ehrlich gesagt, ich habe keine Ahnung, was es passieren, um eine Liste der Elemente zu erhalten. Die API-Dokumentation unter http://umbraco.org/apiDocs/html/M_umbraco_library_GetMedia.htm scheinen darauf hinzudeuten, dass ich wahrscheinlich das, was wollen, ist ein Knoten (wie?) und dann in Pass mit

umbraco.library:GetMedia(<some node id>, true)

Wie würde ich mich über diesen Anfangsknoten-ID bekommen?

Anschließend würde etwas wie diese Arbeit?

<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>
War es hilfreich?

Lösung 2

Dank einiger großer Hilfe der Leute bei der umbraco Foren ich es herausgefunden. Der Thread ist hier und die Lösung ist im Grunde diese 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>

gekoppelt mit einem Media-Picker auf der Seite.

Andere Tipps

Hier ist der gleiche Code, sondern aktualisiert mit Umbraco 4.5 zu arbeiten oder später:

<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>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top