Menu Umbraco:页脚菜单真/假属性

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 "&#x00A0;"> ]> <xsl:stylesheet version="1.0" xmlns:xsl="h

我已尝试使用文档类型文本页面上的新属性showInFooter(True/False)向umbraco6添加一个简单的页脚菜单

使用以下命令创建xslt文件:

    <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp "&#x00A0;"> ]>
<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>