1

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

媒体目录内容如下: 媒体

我创建了一个名为的 XSLT 文件ImageSlider.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>

1088banner目录的 ID,但它根本不起作用。我是新来的。

谁能帮帮我吗 ?

4

1 回答 1

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>
于 2013-11-18T13:22:37.820 回答