DotNetNuke DDRMenu:菜单面包屑xslt dnn中未包含的输出节点

时间:2012-08-03 03:34:22

标签: xslt dotnetnuke xmlnode ddrmenu

我在尝试获取DotNetNuke DDRMenu的以下XSLT模板以便在以下条件下吐出面包屑的最后一页/节点时遇到问题:

  • 最后一页不是“在页面设置中包含(d)在菜单中”
  • 但最后一页是父节点的子节点( 显示在我的输出中)

如何从以下XSL模板中获取菜单中未包含的页面,以便在我的痕迹导航结束时输出?:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html"/>
    <xsl:param name="separator"></xsl:param>
    <xsl:template match="/*">
        <xsl:apply-templates select="root" />
    </xsl:template>
    <xsl:template match="root">
        <ul>
            <xsl:apply-templates select="//node[@breadcrumb=1]" />
        </ul>
    </xsl:template>
    <xsl:template match="node">
        <li>
            <xsl:choose>
                <xsl:when test="@enabled = 1">
                    <a href="{@url}" title="{@title}">
                        <xsl:value-of select="@text" />
                    </a>
                </xsl:when>
                <xsl:otherwise>
                    <xsl:value-of select="@text" />
                </xsl:otherwise>
            </xsl:choose>
        </li>
    </xsl:template>
</xsl:stylesheet>

1 个答案:

答案 0 :(得分:1)

我发现我的XSLT代码很好。

问题是我的ascx皮肤对象标签缺少属性设置以允许输出隐藏页面。将 IncludeHidden =“true”添加到皮肤对象标记可以解决问题。

以下示例:

<ddr:MENU MenuStyle="breadcrumb" IncludeHidden="true" runat="server" />

This resource(http://www.dotnetnuke.com/Resources/Wiki/Page/DDRMenu-reference-guide.aspx#IncludeHidden_​​5)说:

  

<强> IncludeHidden

     

仅对于DotNetNuke 6,如果设置为“true”,将包含隐藏页面。这对于创建单独的菜单以显示从主菜单中隐藏的站点部分非常有用。