XSLT를 사용하여 Umbraco 웹 사이트 (NL, ENG)에 언어 플래그를 표시하려고합니다. 내 XSLT는 페이지가 다른 페이지와 관계가있는 경우에만 플래그를 표시하지만 다른 페이지와 관계가없는 경우 플래그를 표시하려고합니다 (이 플래그는 선택한 언어의 인덱스 페이지로 이동해야 함) .Umbraco 및 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>
그리고 내 세 구조는 Startpagina 집과의 관계를 가지고있는 곳 (모양과 Algemeen 일반과의 관계가 있습니다
두 플래그를 모두 표시해야합니다. 나는 관련 페이지로 이동하기를 원하기 때문에 GetRelatedNodesAsXml을 사용하고있다. 그래서 내 "Algemeen"이 "General"과 관련이 있고 사용자가 "Algemeen"페이지에 있고 영어 플래그를 클릭하면 "General"로 이동합니다. "Algemeen"과 관련된 페이지가없고 사용자가 영어 플래그를 클릭하면 /eng/index.aspx 또는 다른 것으로 이동합니다. – Marcel