定义自定义布局&类到每个joomla菜单级别


Define custom layout & class to each joomla menu levels

我想为joomla菜单级别添加自定义布局和类。

这是我的菜单的默认。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>

它的更深层次是由以下代码生成的

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>';
    }

我想添加自定义div和类到每个级别的下拉菜单,例如,我想使第三级菜单多列,我怎么能定义每个级别的div请帮助我,我现在需要它,它非常重要…

在菜单管理器中编辑每个菜单项,并在页面显示选项卡下输入页面类。

你将在CSS中拥有唯一的选择器类来应用任何你想要的样式