2016-08-12 53 views
0

我CURENT菜單模板如下:DNN nodeselector秀節目的兄弟姐妹,如果沒有孩子

<nav class="col-md-12" data-responsive-menu="true" data-responsive-levels=""> 
    <ul class="col-md-12" id="sublist"> 
     [*>NODE-TOP] 
    </ul> 
</nav> 

[>NODE-TOP] 

    [?ENABLED] 
     <a href="[=URL]" id="sidemenuitem" [?TARGET]target="[=TARGET]" [/?]><li class="subitem">[=TEXT]</li></a> 
    [?ELSE] 
     <a href="#" id="sidemenuitem"><li class="subitem">[=TEXT]</li></a> 
    [/?] 

[/>] 

顯示當前頁面的孩子,如果你點擊一個孩子,它會顯示的是,兄弟姐妹頁。

現在我想讓它顯示孩子,如果它有任何和否則它應該顯示它的兄弟姐妹。

我該如何做到這一點?

回答

0

我發現的幫助下回答: http://demo.40fingers.net/dnn-ddr-demo-skin/

我添加了下面的XSLT腳本爲它工作:

<?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="ControlID" /> 
<xsl:param name="Options" /> 
<xsl:template match="/*"> 
    <xsl:apply-templates select="root" /> 
</xsl:template> 


<xsl:template match="root"> 
<nav class="col-md-12" data-responsive-menu="true" data-responsive-levels=""> 
    <ul class="Root" id="sublist"> 
     <xsl:apply-templates select="node"> 
      <xsl:with-param name="level" select="0"/> 
      <xsl:with-param name="NoChildren"> 
       <xsl:call-template name="NoChildren"/> 
      </xsl:with-param> 
     </xsl:apply-templates> 
    </ul> 
</nav> 
</xsl:template> 

<xsl:template match="node"> 

     <xsl:param name="level" /> 
     <xsl:param name="NoChildren" /> 

     <xsl:choose> 
      <xsl:when test="$NoChildren='true'"> 
        <!-- Render Siblings as Active page does not have Children--> 
       <a id="sidemenuitem" href="{@url}"> 
       <xsl:choose> 

        <xsl:when test="@breadcrumb = 1 and @selected = 1"> 
         <li class="subitem active"> 
          <span> 
           <xsl:value-of select="@text" /> 
          </span> 
         </li> 
        </xsl:when> 
        <xsl:otherwise> 
         <li class="subitem"> 
          <span> 
           <xsl:value-of select="@text" /> 
          </span> 
         </li> 
        </xsl:otherwise> 

       </xsl:choose> 

       </a> 
      </xsl:when> 
      <xsl:otherwise> 
       <!-- Render Children of Active page--> 
        <xsl:if test="@breadcrumb=1"> 
         <xsl:for-each select="node"> 
          <a id="sidemenuitem" href="{@url}"> 
           <xsl:choose> 

            <xsl:when test="@breadcrumb = 1 and @selected = 1"> 
             <li class="subitem active"> 
              <span> 
               <xsl:value-of select="@text" /> 
              </span> 
             </li> 
            </xsl:when> 
            <xsl:otherwise> 
             <li class="subitem"> 
              <span> 
               <xsl:value-of select="@text" /> 
              </span> 
             </li> 
            </xsl:otherwise> 

           </xsl:choose> 
          </a> 
         </xsl:for-each> 
        </xsl:if > 
      </xsl:otherwise> 
     </xsl:choose> 
    </xsl:template> 




<xsl:template name="NoChildren"> 
    <!-- If the Active page has no children --> 
    <xsl:for-each select='/Root/root/node'> 
     <xsl:if test="@selected=1"> 
      <xsl:if test="not(node)"> 
       <xsl:text>true</xsl:text> 
      </xsl:if> 
     </xsl:if> 
    </xsl:for-each> 
</xsl:template> 

0

我不完全確定你的意思。但是我使用下面的代碼來生成帶有子菜單的菜單樹。

<nav class="menuBalk"> 
    [*>NODE-TOP] 
</nav> 

[>NODE-TOP] 
    <div class="topMenu[?FIRST] first[/?][?LAST] last[/?][?SELECTED] active[/?]"> 
     [?ENABLED] 
      <a href="[=URL]" [?TARGET]target="[=TARGET]" [/?]>[=TEXT]</a> 
     [?ELSE] 
      <a href="#">[=TEXT]</a> 
     [/?] 
     [?NODE] 
      <span class="subMenuBalk"> 
       [*>NODE] 
      </span> 
     [/?] 
    </div> 
[/>] 

[>NODE] 
    <div class="subMenu[?FIRST] first[/?][?LAST] last[/?][?SELECTED] active[/?]"> 
     [?ENABLED] 
      <a href="[=URL]" [?TARGET]target="[=TARGET]" [/?]>[=TEXT]</a> 
     [?ELSE] 
      <a href="#">[=TEXT]</a> 
     [/?] 
     [?NODE] 
      <ul class="subSubMenuBalk"> 
       [*>NODE] 
      </ul> 
     [/?] 
    </div> 
[/>] 
+0

這顯示了兄弟姐妹和孩子們。我需要它來顯示孩子是否有孩子,如果孩子沒有孩子,就應該顯示孩子是兄弟姐妹。 –

+0

我懷疑你想要什麼是可能的。在你的情況下,如果根頁面有孩子,而其中一個孩子沒有自己的孩子,它將創建一個無限的菜單結構。 – VDWWD