0

我正在创建一个从当前成员获取属性的宏。该属性使用“多个文本字符串”数据类型,每个文本字符串包含一个媒体 ID、版本号以及添加的日期和时间。

<xsl:output method="xml" omit-xml-declaration="yes"/>

<xsl:param name="currentPage"/>

<xsl:template match="/">

        <xsl:if test="count(umbraco.library:GetCurrentMember()/assetDownloads/values/value) > 0">
                <ul>
                        <xsl:for-each select="umbraco.library:GetCurrentMember()/assetDownloads/values/value">
                                <li>
                                        <xsl:if test="./preview != ''">
                                                <img>
                                                        <xsl:attribute name="src">
                                                                <xsl:value-of select="./preview" />
                                                        </xsl:attribute>
                                                </img>
                                        </xsl:if>
                                        <p><xsl:value-of select="current()"/></p>       
                                </li>
                        </xsl:for-each>
                </ul>
        </xsl:if>

</xsl:template>

结果如下:

  • 1475,1,28-Dec-12 01:26:45

  • 1475,1,28-Dec-12 01:27:03

第一个值是媒体类型 ID,第二个值是版本号,第三个值是下载日期和时间。

如何分隔字符串以便显示来自媒体类型的详细信息?我想显示媒体类型的预览图像和媒体类型的节点名称。

有人可以帮助我吗?

干杯,合资企业

这是如何将第一个值显示为预览图像和节点名称:

<!-- First value as preview image and nodeName -->
<xsl:if test="position() = 1">
    <img>
        <xsl:attribute name="src">
            <xsl:value-of select="umbraco.library:GetMedia(., 0)/preview" />
        </xsl:attribute>
    </img>
    <p><xsl:value-of select="umbraco.library:GetMedia(., 0)/@nodeName" /></p>
</xsl:if>
4

1 回答 1

1

, (Comma)尝试使用通过以下方式分隔的 Umbraco 拆分功能

<xsl:variable name="contentSplit" select="umbraco.library:Split(current(), ',')" />

重构代码:

<xsl:if test="count(umbraco.library:GetCurrentMember()/assetDownloads/values/value) > 0">
  <ul>
    <xsl:for-each select="umbraco.library:GetCurrentMember()/assetDownloads/values/value">
      <li>
        <xsl:if test="./preview != ''">
          <img>
            <xsl:attribute name="src">
              <xsl:value-of select="./preview" />
            </xsl:attribute>
          </img>
        </xsl:if>
        <p>

          <!-- Split values via , comma using below function -->
          <xsl:variable name="contentSplit" select="umbraco.library:Split(current(), ',')" />

          <xsl:for-each select="$contentSplit/value">

            <!-- First value as media type id -->
            <xsl:if test="position() = 1">
              Media Type Id: <xsl:value-of select="." />
            </xsl:if>

            <!-- Second value as version number -->
            <xsl:if test="position() = 2">
              Version: <xsl:value-of select="." />
            </xsl:if>

            <!-- Third value as date and time of download -->
            <xsl:if test="position() = 3">
              Date Time: <xsl:value-of select="." />
            </xsl:if>

          </xsl:for-each>

        </p>       
      </li>
    </xsl:for-each>
  </ul>
</xsl:if>

如果您需要更多解释,请告诉我,谢谢

于 2013-01-07T09:48:45.117 回答