2016-08-12 2 views
0

Meine curent Menüvorlage ist die folgende:dnn nodeselector anzeigen anzeigen Geschwister, wenn keine Kinder

<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> 
    [/?] 

[/>] 

Dies zeigt die Kinder der aktuellen Seite, und wenn Sie auf eines der Kinder klicken, wird es die Geschwister, die zeigen, Seite.

jetzt möchte ich es den Kindern zeigen, wenn es irgendwelche hat und ansonsten sollte es seine Geschwister zeigen.

Wie erreiche ich das?

Antwort

0

fand ich die Antwort mit Hilfe von: http://demo.40fingers.net/dnn-ddr-demo-skin/

ich die folgenden Xslt Skript hinzugefügt, damit es funktioniert:

<?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

Ich bin nicht genau sicher, was du meinst. Aber ich verwende den folgenden Code, um den Menübaum mit Untermenüs zu erzeugen.

<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

Das das Geschwister zeigt und die Kinder . Ich brauche es, um den Kindern zu zeigen, wenn es welche hat und wenn es keine Kinder hat, sollte es seine Geschwister zeigen. –

+0

Ich bezweifle, dass das, was Sie wollen, möglich ist. Wenn in einer Situation eine Stammseite untergeordnete Elemente hat und eines dieser untergeordneten Elemente keine eigenen untergeordneten Elemente hat, wird eine unendliche Menüstruktur erstellt. – VDWWD

Verwandte Themen