Menu Umbraco:页脚菜单真/假属性
我已尝试使用文档类型文本页面上的新属性showInFooter(True/False)向umbraco6添加一个简单的页脚菜单 使用以下命令创建xslt文件:Menu Umbraco:页脚菜单真/假属性,menu,umbraco,footer,Menu,Umbraco,Footer,我已尝试使用文档类型文本页面上的新属性showInFooter(True/False)向umbraco6添加一个简单的页脚菜单 使用以下命令创建xslt文件: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp " "> ]> <xsl:stylesheet version="1.0" xmlns:xsl="h
<?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" xmlns:Exslt.ExsltCommon="urn:Exslt.ExsltCommon" xmlns:Exslt.ExsltDatesAndTimes="urn:Exslt.ExsltDatesAndTimes" xmlns:Exslt.ExsltMath="urn:Exslt.ExsltMath" xmlns:Exslt.ExsltRegularExpressions="urn:Exslt.ExsltRegularExpressions" xmlns:Exslt.ExsltStrings="urn:Exslt.ExsltStrings" xmlns:Exslt.ExsltSets="urn:Exslt.ExsltSets"
exclude-result-prefixes="msxml umbraco.library Exslt.ExsltCommon Exslt.ExsltDatesAndTimes Exslt.ExsltMath Exslt.ExsltRegularExpressions Exslt.ExsltStrings Exslt.ExsltSets ">
<xsl:output method="xml" omit-xml-declaration="yes"/>
<xsl:param name="currentPage"/>
<xsl:template match="/">
<ul>
<xsl:for-each select="$currentPage/ancestor-or-self::node/descendant-or-self::node/node [string(data[@alias='ShowInFooter']) = '1']">
<li>
<a href="{umbraco.library:NiceUrl(@id)}">
<xsl:value-of select="@nodeName" />
</a>
</li>
</xsl:for-each>
</ul>
</xsl:template>
</xsl:stylesheet>
-
将宏添加到我的母版页:
<umbraco:Macro Alias="mgzFooterNavigation" runat="server"></umbraco:Macro>
很明显,我在页脚菜单中想要的页面上勾选了true,但没有菜单项:-/
但是如果有一个空白的
表明您的xsl:for-each与任何内容都不匹配,那么我只会得到一个空白的
,您可以通过使用
xsl:value
在for-each中输出任何内容来测试这一点
因此,我猜您在for each中的选择有一个bug
最有可能的两个错误是您拼写错了“ShowInFooter”(它的首字母是否为小写字母-Umbraco通常默认为1)
第二,您的页脚节点是否曾经发挥作用
从Umbraco的wiki()中,您可以使用它来运行home下的节点(…并且您可以将“myDocType”替换为home节点的doctype,假设您的导航都嵌套在home节点下)
然后,您可以使用xsl:value的
来验证是否在正确的节点上运行
然后使用字段值进行扩展,如下所示:
<xsl:for-each select="$currentPage/ancestor-or-self::root//node [@nodeTypeAlias='myDocType']">
<xsl:variable name="footerItem" select="node[data[@alias='showInFooter'] = '1'">
<xsl:if test="$footerItem">
<li>
<a href="{umbraco.library:NiceUrl(@id)}">
<xsl:value-of select="@nodeName" />
</a>
</li>
</xsl:if>
</xsl:for-each>
我找不到阿梅尔文在翁布拉科6号工作的答案。这是我的尝试,适用于我,但可能不适用于我的设置
<xsl:variable name="allNodes" select="$currentPage/ancestor-or-self::root//umbTextpage[@isDoc]"/>
<xsl:template match="/">
<ul class="footer-menu">
<xsl:for-each select="$allNodes">
<xsl:if test="showInFooter = 1">
<li>
<a href="{umbraco.library:NiceUrl(@id)}">
<xsl:value-of select="@nodeName"/>
</a>
</li>
</xsl:if>
</xsl:for-each>
</ul>
</xsl:template>
-
<xsl:variable name="allNodes" select="$currentPage/ancestor-or-self::root//umbTextpage[@isDoc]"/>
<xsl:template match="/">
<ul class="footer-menu">
<xsl:for-each select="$allNodes">
<xsl:if test="showInFooter = 1">
<li>
<a href="{umbraco.library:NiceUrl(@id)}">
<xsl:value-of select="@nodeName"/>
</a>
</li>
</xsl:if>
</xsl:for-each>
</ul>
</xsl:template>