Skip to content

Commit

Permalink
Merge pull request #6 from hans2103/metismenu-frontend
Browse files Browse the repository at this point in the history
Metismenu frontend - wrapping UL attributes in an array
  • Loading branch information
drmenzelit authored Aug 10, 2020
2 parents c27d13a + 0d1bf1e commit 9c229e5
Showing 1 changed file with 35 additions and 35 deletions.
70 changes: 35 additions & 35 deletions templates/cassiopeia/html/mod_menu/metismenu.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,70 +11,69 @@

use Joomla\CMS\Helper\ModuleHelper;
use Joomla\CMS\WebAsset\WebAssetManager;
use Joomla\Utilities\ArrayHelper;

/** @var WebAssetManager $wa */
$wa = $app->getDocument()->getWebAssetManager();
$wa->registerAndUseScript('metismenu', 'mm-horizontal.js', [], [], ['metismenujs']);

$id = '';

if ($tagId = $params->get('tag_id', ''))
{
$id = ' id="' . $tagId . '"';
}
$ulAttribs = [
'id' => $params->get('tag_id', ''),
'class' => 'mod-menu metismenu ' . $class_sfx . ' mod-list'
];

// The menu class is deprecated. Use mod-menu instead
?>
<ul<?php echo $id; ?> class="metismenu <?php echo $class_sfx; ?>">
<ul <?php echo ArrayHelper::toString($ulAttribs); ?>>
<?php foreach ($list as $i => &$item)
{
$itemParams = $item->getParams();
$class = 'nav-item item-' . $item->id;
$class[] = 'metismenu-item item-' . $item->id;

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

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

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

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

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

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

if ($item->parent)
{
$class .= ' parent';
$class[] = 'parent';
}

echo '<li class="' . $class . '">';
echo '<li class="' . implode(' ', $class) . '">';

switch ($item->type) :
case 'separator':
Expand All @@ -89,21 +88,22 @@
break;
endswitch;

// The next item is deeper.
if ($item->deeper)
{
echo '<ul class="mm-collapse">';
}
// The next item is shallower.
elseif ($item->shallower)
{
echo '</li>';
echo str_repeat('</ul></li>', $item->level_diff);
}
// The next item is on the same level.
else
{
echo '</li>';
}
switch (true) :
// The next item is deeper.
case $item->deeper:
echo '<ul class="mm-collapse">';
break;

// The next item is shallower.
case $item->shallower:
echo '</li>';
echo str_repeat('</ul></li>', $item->level_diff);
break;

// The next item is on the same level.
default:
echo '</li>';
break;
endswitch;
}
?></ul>

0 comments on commit 9c229e5

Please sign in to comment.