2013-11-14 74 views
1

我正在使用Umbraco v6.1.6,我想要的只是显示来自使用媒体选择器选择的媒体目录中的图像。使用媒体选择器不工作显示媒体目录中的图像

媒体目录的内容如下: Media

而且我已经创建了一个名为ImageSlider.xslt XSLT文件以及该文件的内容是如下:

<?xml version="1.0" encoding="utf-8" ?> 
<xsl:stylesheet 
    version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:umb="urn:umbraco.library" 
    exclude-result-prefixes="umb" 
> 
<xsl:output method="html" indent="yes" omit-xml-declaration="yes" /> 
<xsl:param name="currentPage" /> 
<xsl:template match="/"> 

    <xsl:variable name="media" select="umb:GetMedia(1088, 0)" /> 
    <xsl:if test="$media"> 
     <img src="{$media/umbracoFile}" alt="{$media/altText}" /> 
    </xsl:if> 

</xsl:template> 
</xsl:stylesheet> 

这里1088是ID的banner目录,但它根本没有工作。我是新来的。

任何人都可以帮我吗?

+0

你能否详细描述一下'在all'不工作在这种情况下意味着什么? –

回答

0

我假设你想选择文件夹并列出它下面的所有图像。目前,你的代码只是试图显示文件夹。你需要像这样的东西...

在我的例子中,我使用了多节点树选择器,你可以选择图像和文件夹,渲染出csv。它会遍历它所有,并列出所有图像

<xsl:for-each select="$source/value"> 
     <xsl:variable name="imageId" select="number(current())" /> 

     <xsl:if test="$imageId &gt; 0"> 
     <xsl:variable name="media" select="umbraco.library:GetMedia($imageId, 0)" /> 

     <xsl:choose> 
      <xsl:when test="local-name($media) = 'Image'"> 
      <xsl:call-template name="ImageBox"> 
       <xsl:with-param name="imageId" select="$imageId"/> 
      </xsl:call-template> 
      </xsl:when> 
      <xsl:when test="local-name($media) = 'Folder'"> 
      <xsl:call-template name="LoopFolders"> 
       <xsl:with-param name="folderId" select="$imageId"/> 
      </xsl:call-template> 
      </xsl:when> 
     </xsl:choose> 
     </xsl:if> 

    </xsl:for-each> 
</xsl:template> 

<xsl:template name="LoopFolders"> 
    <xsl:param name="folderId"/> 
    <xsl:variable name="media" select="umbraco.library:GetMedia($folderId, 0)" /> 
    <xsl:variable name="alt" select="$media/@nodeName" /> 

    <div id="gallery"> 
     <xsl:for-each select="umbraco.library:GetMedia($folderId, true())/Image"> 
      <xsl:call-template name="ImageBox"> 
     <xsl:with-param name="imageId" select="number(@id)"/> 
    </xsl:call-template> 
    </xsl:for-each> 
</div> 
</xsl:template> 


<xsl:template name="ImageBox"> 
    <xsl:param name="imageId"/> 

    <xsl:if test="$imageId &gt; 0"> 
     <xsl:variable name="media" select="umbraco.library:GetMedia($imageId, 0)" /> 
     <xsl:if test="$media"> 
      <xsl:variable name="url" select="$media/umbracoFile" /> 
      <xsl:variable name="width" select="$media/umbracoWidth" /> 
      <xsl:variable name="height" select="$media/umbracoHeight" /> 
      <xsl:variable name="alt" select="$media/@nodeName" /> 
      <img src="{$url}" alt="{$alt}" width="{$width}" height="{$height}" />   
     </xsl:if> 
    </xsl:if> 
</xsl:template>