2009-09-18 4 views
2

나는 특정 미디어 디렉토리 아래에있는 모든 미디어를 나열한 매크로를 제작하고자하는 umbraco의 XSLT 시스템을 사용하기 시작했습니다. 나는 umbraco.library를 발견했습니다 : GetMedia, 솔직히 말해서, 항목 목록을 얻기 위해 무엇을 전달해야할지 모르겠습니다. http://umbraco.org/apiDocs/html/M_umbraco_library_GetMedia.htm에서의 API 문서는 내가 아마 원하는 것은 (어떻게?) 노드를 검색 한 후 나는 초기 노드 ID 있다는 것에 대해 갈 것이라고 어떻게umbraco의 미디어 목록 검색

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> 

답변

0

umbraco 포럼의 사람들의 도움을 받아서 알아 냈습니다. 스레드 here하고, 용액 기본적 페이지에서 미디어 선택 컨트롤 결합이 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> 

이다.

+1

이 umbraco 4.5 및 최대를 위해 더 이상 작동하지 않습니다. http://www.notas-terrible.net/blog/post/Umbraco-45-XML-Schema-changed.aspx – Costo

+0

Costo, 귀하의 링크가 작동하지 않습니다. – Mario

1

여기에 동일한 코드입니다 나중에 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>