0

私のサイトの最後のノードは記事が表示される場所であり、誰もが独自のタグを持っており、もちろんそれらのいくつかは同じである可能性があるため、機能するタグのマクロを作成しました(記事のタグをリストしますユーザーが閲覧している)、'Article' doctype に Tag データ型を使用しましたが、マクロは正しく動作します。しかし、同じタグを持つ記事をリストするために書いたマクロに問題があり、それを と呼びましたRelatedContent.xsltAllTags.xsltUmbraco TV Tutorials で見つけたコードは次のとおりです。

<xsl:template match="/">
        <div class="tags">
        <xsl:variable name="Factor" select="6 div Exslt.ExsltMath:max(tags:getAllTagsInGroup('default')/tags/tag/@nodesTagged)"/>
            <xsl:for-each select="tags:getAllTagsInGroup('default')/tags/tag">
                <a class="tag{round($Factor * @nodesTagged)}x" href="?tag={.}">
                    <xsl:value-of select="."/>
                </a><br/>
            </xsl:for-each>
        </div>
</xsl:template>

RelatedContent.xslt のコードは次のとおりです。

<xsl:template match="/">

    <ul>
        <xsl:for-each select="$currentPage/node [string(data [@alias='umbracoNaviHide']) != '1'] and (umbraco.library:Request('tag') = '' or contains(data [@alias = 'tags'], umbraco.library:Request('tag')))">
            <li>
                <a href="{umbraco.library:NiceUrl(@id)}">
                    <xsl:value-of select="@nodeName"/>
                    <xsl:value-of select="newsTitle"/>
                </a>
            </li>
        </xsl:for-each>
    </ul>

</xsl:template>

これを理解するのに役立つものは何も見つからなかったので、その方法がわかりません。私はあなたからの助けに感謝します。アドバイスありがとうございます。

(アンブラコ 6.1.3)

4

1 に答える 1

0

関連コンテンツのコードは、古い XML スキーマを使用しています。

このビットを置き換えます。

<xsl:for-each select="$currentPage/node [string(data [@alias='umbracoNaviHide']) != '1']
and (umbraco.library:Request('tag') = '' or contains(data [@alias = 'tags'],
umbraco.library:Request('tag')))">
</xsl:for-each>

<xsl:variable name="tag" select="umbraco.library:Request('tag')"/>
<xsl:for-each select="$currentPage/*[@isDoc][umbracoNaviHide != 1][contains($tag,./tag)]">
</xsl:for-each>

/node 要素は 4.6 以降のスキーマには存在せず、要素名は documentTypeAlias の名前に置き換えられます。

したがってarticle、プロパティを持つドキュメント タイプがある場合は、次のarticleTitleようになります。

$currentPage/article/
$currentPage/article/articleTitle

古いスキーマの代わりに (これは 4.5 以上では正しくありません)

$currentPage/node[@nodeTypeAlias = 'article']
$currentPage/node[./data[@alias] = 'articleTitle']

Umbraco wiki で 2 つのスキーマの違いを確認できます。

http://our.umbraco.org/wiki/reference/xslt/45-xml-schema

于 2013-08-17T08:06:37.410 に答える