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、2番目の値はそのバージョン番号、3番目の値はダウンロードされた日時です。

メディアタイプの詳細を表示できるように文字列を分離するにはどうすればよいですか?メディアタイプのプレビュー画像とメディアタイプのnodeNameを表示したいのですが。

誰かがこれで私を助けることができますか?

乾杯、JV

これは、最初の値をプレビュー画像とnodeNameとして表示する方法です。

<!-- 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 に答える