Les avertissements suivants se sont produits :
Warning [2] Undefined array key 0 - Line: 1640 - File: showthread.php PHP 8.2.18 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/showthread.php 1640 errorHandler->error_callback
/showthread.php 915 buildtree




Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[Résolu] Menu bootstrap et cmsms 2.0
#14
Salut,

Je vois que tu en as profité pour modifier le code que tu souhaitais Wink.
En fait, j'avais juste une petite erreur, mais qui avait de grandes conséquences. Le premier parent, donc "navigation", est à $depth == 1, pas 0 Big Grin .

Voilà le code fonctionnel et testé suivant tes derniers désirs, mon Prince Wink.
Code :
{* this template uses recursion, but not a smarty function. *}
{*
  variables:
  node: contains the current node.
  aclass: is used to build a string containing class names given to the a tag if one is used
  liclass: is used to build a string containing class names given to the li tag.
*}
{if !isset($depth)}{$depth=0}{/if}
{strip}

{if $depth=0}
<div id="navbar" class="navbar-collapse collapse">
<ul class='nav navbar-nav navbar-right' role='menu'>
{$caret='<b class="caret"></b>'}
{else}
<ul class='dropdown-menu' role='menu'>
{/if}

{$depth=$depth+1}
{foreach $nodes as $node}
{* création et reset classes liens et ancres *}
{$liclass=[]}
{$aclass=[]}

{if $depth=1}{* si on est sur le top parent *}
    {$liclass[]='dropdown'}
    {$liclass[]='active'}
    {$aclass[]='dropdown-toogle'}
    {$aclass[]=$node->alias}{* supprimer si pas d'alias dans la classe de l'ancre *}
{elseif $node->has_children}{* si l'item a des enfants *}
        {$liclass[]='dropdown'}
        {$liclass[]='dropdown-submenu'}
    {$aclass[]='dropdown'}
        {$aclass[]='dropdown-toogle'}
    {$aclass[]=$node->alias}{* supprimer si pas d'alias dans la classe de l'ancre *}
{else}
    {$aclass[]='scrollTo'}
{/if}  

{* build the menu item from the node *}
{if $node->type == 'sectionheader'}
    <li class='{implode(' ',$liclass)}'><a{if count($aclass) > 0} class="{implode(' ',$aclass)}"{/if}><span class="sectionheader">{$node->menutext}</span></a>
    {if isset($node->children)}
        {include file=$smarty.template nodes=$node->children}
    {/if}
    </li>
{elseif $depth=1}
    <li class="{implode(' ',$liclass)}">
      <a{if count($aclass) > 0} class="{implode(' ',$aclass)}"{/if} href="{$node->url}" data-toggle='dropdown' data-target='#' target='_self'>{$node->menutext} {$caret}</a>
      {if isset($node->children)}
        {include file=$smarty.template nodes=$node->children}
      {/if}
    </li>
{elseif $node->type == 'separator'}
    <li style="list-style-type: none;"><hr class="menu_separator"/></li>
{else}
    <li{if count($liclass) > 0} class="{implode(' ',$liclass)}"{/if}>
        <a{if count($aclass) > 0} class="{implode(' ',$aclass)}"{/if} href="#{if !$node->has_children}{$node->alias}{/if}">{$node->menutext}</a>
        {if isset($node->children)}
        {include file=$smarty.template nodes=$node->children}
      {/if}
    </li>
{/if}
{/foreach}
{$depth=$depth-1}
</ul>
{/strip}
Si tu souhaites une explication, n'hésite pas.


Messages dans ce sujet

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)