2016-10-19 4 views
0

joomlaメニューレベルにカスタムレイアウトとクラスを追加します。各joomlaメニューレベルにカスタムレイアウトとクラスを定義します。

これは私が例えばドロップダウンの各レベルにカスタムのdivとクラスを追加したい、このコード

if ($item->deeper) 
    { 
     echo '<div class="uk-dropdown uk-dropdown-navbar"><ul class="uk-nav uk-nav-navbar">'; 
    } 
    // The next item is shallower. 
    elseif ($item->shallower) 
    { 
     echo '</li>'; 
     echo str_repeat('</ul></div></li>', $item->level_diff); 
    } 
    // The next item is on the same level. 
    else 
    { 
     echo '</li>'; 
    } 

で生成されたそのより深いレベルの私のメニューのdefault.phpコード

<nav class="uk-navbar <?php echo $class_sfx; ?>" id="ad-menubar"> 
<ul class="uk-navbar-nav"> 
<?php foreach ($list as $i => &$item){ 
    $class = 'ad-menu-item item-' . $item->id; 
    $attribute = ''; 

    if ($item->id == $default_id) 
    { 
     $class .= ' default'; 
    } 


    if (($item->id == $active_id) || ($item->type == 'alias' && $item->params->get('aliasoptions') == $active_id)) 
    { 
     $class .= ' current'; 
    } 

    if (in_array($item->id, $path)) 
    { 
     $class .= ' uk-active'; 
    } 
    elseif ($item->type == 'alias') 
    { 
     $aliasToId = $item->params->get('aliasoptions'); 

     if (count($path) > 0 && $aliasToId == $path[count($path) - 1]) 
     { 
      $class .= ' active'; 
     } 
     elseif (in_array($aliasToId, $path)) 
     { 
      $class .= ' alias-parent-active'; 
     } 
    } 

    if ($item->type == 'separator') 
    { 
     $class .= ' divider'; 
    } 

    if ($item->deeper) 
    { 
     $class .= ' deeper'; 
    } 

    if ($item->parent) 
    { 
     $class .= ' uk-parent'; 
     $attribute = "data-uk-dropdown=\"{justify:'#ad-menubar', mode:'click'}\""; 
    } 

    echo '<li class="' . $class . '" '. $attribute .'>'; 

    switch ($item->type) : 
     case 'separator': 
     case 'component': 
     case 'heading': 
     case 'url': 
      require JModuleHelper::getLayoutPath('mod_menu', 'default_' . $item->type); 
      break; 

     default: 
      require JModuleHelper::getLayoutPath('mod_menu', 'default_url'); 
      break; 
    endswitch; 

    // The next item is deeper. 
    if ($item->deeper) 
    { 
     echo '<div class="uk-dropdown uk-dropdown-navbar"><ul class="uk-nav uk-nav-navbar">'; 
    } 
    // The next item is shallower. 
    elseif ($item->shallower) 
    { 
     echo '</li>'; 
     echo str_repeat('</ul></div></li>', $item->level_diff); 
    } 
    // The next item is on the same level. 
    else 
    { 
     echo '</li>'; 
    } 
} 
?> 
</ul> 
</nav> 

です私は第3レベルのメニューを複数の列にしたいと思います。どのように各レベルのdivを定義することができますか?私は今それを非常に重要なものにしてください...

答えて

0

Menu Managerとentページ表示タブの下にページクラスがあります。

CSSで独自のセレクタクラスを使用して、任意のスタイルを適用できます。

+0

いいえ私はこれをしたくありません。私はドロップダウンメニューの項目をマルチカラーで作成したいと思いますが、divでCSSをフレックスしないでください。 –

関連する問題