Получение списка медиа в umbraco - PullRequest
2 голосов
/ 19 сентября 2009

Я только начинаю играть с системой XSLT в umbraco, где я надеялся создать макрос, в котором перечислены все мультимедиа в определенном каталоге мультимедиа. Я сталкивался с umbraco.library: GetMedia, но, честно говоря, я не знаю, что ему передать, чтобы получить список предметов. Документы API на http://umbraco.org/apiDocs/html/M_umbraco_library_GetMedia.htm, кажется, предполагают, что я, вероятно, хочу найти узел (как?) И затем передать его с

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 ]

1 голос
/ 04 июня 2013

Вот тот же код, но обновленный для работы с 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>
0 голосов
/ 20 сентября 2009

Благодаря некоторой большой помощи от людей на форумах по умбрако, я понял это. Нить здесь , и решение в основном это 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>

в сочетании с элементом управления медиа-выбора на странице.

...