XSLT を使用して Umbraco Web サイト (NL、ENG) に言語フラグを表示しようとしています。私の XSLT は、ページが現在別のページと関係がある場合にのみフラグを表示していますが、別のページとの関係がない場合にもフラグを表示したいと考えています (このフラグは、選択した言語のインデックス ページに移動する必要があります)。 .
私のアイデアは変数を操作することでしたが、これらを XSLT で変更できないことを知りませんでした (XSLT の新機能です)。
私の質問は、ページに関係がない場合でも NL ENG フラグを常に表示する方法はありますか?
これが私のXSLTコードです:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp " "> ]>
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxml="urn:schemas-microsoft-com:xslt"
xmlns:umbraco.library="urn:umbraco.library"
exclude-result-prefixes="msxml umbraco.library">
<xsl:output method="xml" omit-xml-declaration="yes" />
<xsl:param name="currentPage" />
<xsl:template match="/">
<xsl:variable name="smallCase" select="'abcdefghijklmnopqrstuvwxyz'" />
<xsl:variable name="upperCase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" />
<ul>
<xsl:for-each select="$currentPage/../../*">
<xsl:variable name="relations" select="umbraco.library:GetRelatedNodesAsXml($currentPage/@id)//relation [@parentId = $currentPage/@id]"/>
<xsl:variable name="nodeName" select="translate(@nodeName, $upperCase, $smallCase)" />
<xsl:for-each select="$relations">
<xsl:value-of select='@nodeName' />
<xsl:variable name="url" select="umbraco.library:NiceUrl(@childId)" />
<xsl:if test="contains($url, $nodeName)">
<li><a href="{$url}" class="{$nodeName}"><xsl:value-of select='$nodeName' /></a></li>
</xsl:if>
</xsl:for-each>
</xsl:for-each>
</ul>
</xsl:template>
</xsl:stylesheet>
そして、私の 3 つの構造は次のようになります (ここで、 Startpagina は Home と関係があり、 Algemeen は General と関係があります: