* @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; use Joomla\CMS\Uri\Uri; /** * ========================================================================================================= * IMPORTANT: The scope of this layout file is the `var \Joomla\Module\Menu\Administrator\Menu\CssMenu` object * and NOT the module context. * ========================================================================================================= */ /** @var \Joomla\Module\Menu\Administrator\Menu\CssMenu $this */ $class = 'item'; $currentParams = $current->getParams(); // Build the CSS class suffix if (!$this->enabled) { $class .= ' disabled'; } elseif ($current->type == 'separator') { $class = $current->title ? 'menuitem-group' : 'divider'; } elseif ($current->hasChildren()) { $class .= ' parent'; } if ($current->level == 1) { $class .= ' item-level-1'; } elseif ($current->level == 2) { $class .= ' item-level-2'; } elseif ($current->level == 3) { $class .= ' item-level-3'; } // Set the correct aria role and print the item if ($current->type == 'separator') { echo '
  • '; } // Print a link if it exists $linkClass = []; $dataToggle = ''; $iconClass = ''; $itemIconClass = ''; $itemImage = ''; if ($current->hasChildren()) { $linkClass[] = 'has-arrow'; if ($current->level > 2) { $dataToggle = ' data-bs-toggle="dropdown"'; } } else { $linkClass[] = 'no-dropdown'; } // Implode out $linkClass for rendering $linkClass = ' class="' . implode(' ', $linkClass) . '" '; // Get the menu link $link = $current->link; // Get the menu image class $itemIconClass = $currentParams->get('menu_icon'); // Get the menu image $itemImage = $currentParams->get('menu_image'); // Get the menu icon $icon = $this->getIconClass($current); $iconClass = ($icon != '' && $current->level == 1) ? '' : ''; $ajax = !empty($current->ajaxbadge) ? '' : ''; $iconImage = $current->icon; $homeImage = ''; if ($iconClass === '' && $itemIconClass) { $iconClass = ''; } if ($iconImage) { if (substr($iconImage, 0, 6) == 'class:' && substr($iconImage, 6) == 'icon-home') { $iconImage = ''; $iconImage .= '' . Text::_('JDEFAULT') . ''; } elseif (substr($iconImage, 0, 6) == 'image:') { $iconImage = ' ' . substr($iconImage, 6) . ''; } else { $iconImage = ''; } } $itemImage = (empty($itemIconClass) && $itemImage) ? '  ' : ''; // If the item image is not set, the item title would not have margin. Here we add it. if ($icon == '' && $iconClass == '' && $current->level == 1 && $current->target == '') { $iconClass = ''; } if ($link != '' && $current->target != '') { echo '' . $iconClass . '' . $itemImage . Text::_($current->title) . '' . $ajax . ''; } elseif ($link != '' && $current->type !== 'separator') { echo '' . $iconClass . '' . $itemImage . Text::_($current->title) . '' . $iconImage . ''; } elseif ($current->title != '' && $current->type !== 'separator') { echo '' . $iconClass . '' . $itemImage . Text::_($current->title) . '' . $ajax . ''; } elseif ($current->title != '' && $current->type === 'separator') { echo '' . Text::_($current->title) . '' . $ajax; } else { echo '' . Text::_($current->title) . '' . $ajax; } if ($currentParams->get('menu-quicktask') && (int) $this->params->get('shownew', 1) === 1) { $params = $current->getParams(); $user = $this->application->getIdentity(); $link = $params->get('menu-quicktask'); $icon = $params->get('menu-quicktask-icon', 'plus'); $title = $params->get('menu-quicktask-title', 'MOD_MENU_QUICKTASK_NEW'); $permission = $params->get('menu-quicktask-permission'); $scope = $current->scope !== 'default' ? $current->scope : null; if (!$permission || $user->authorise($permission, $scope)) { echo ''; echo ''; echo '' . Text::_($title) . ''; echo ''; } } if (!empty($current->dashboard)) { $titleDashboard = Text::sprintf('MOD_MENU_DASHBOARD_LINK', Text::_($current->title)); echo '' . '' . '' . $titleDashboard . '' . ''; } // Recurse through children if they exist if ($this->enabled && $current->hasChildren()) { if ($current->level > 1) { $id = $current->id ? ' id="menu-' . strtolower($current->id) . '"' : ''; echo '' . "\n"; } else { echo '
      ' . "\n"; } // WARNING: Do not use direct 'include' or 'require' as it is important to isolate the scope for each call $this->renderSubmenu(__FILE__, $current); echo "
    \n"; } echo "
  • \n";