2016-08-12 12 views
0

マイ海流メニューテンプレートには、次のされていない場合: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

私はの助けを借りて答えを見つけました:それが動作するために、私は、次のXSLTスクリプトを追加 http://demo.40fingers.net/dnn-ddr-demo-skin/

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

私はあなたが望むものが可能であるとは思っていません。あなたの状況では、ルートページに子があり、その子の1つに独自の子がない場合、無限のメニュー構造が作成されます。 – VDWWD