/** * @param array $component The parent menu node * @param array $items The menu items to output * @param bool $disabled If the menu item should be disabled (grayed) * @param int $depth The depth of the menu items * @return null|string */ private static function getMenuItems($component, $items = array(), $disabled = false, $depth = 0) { $parentTitleCleanHtml = isset($component['title']) ? $component['title'] : null; $parentAccess = isset($component['access']) ? $component['access'] : null; $return = null; if ($parentTitleCleanHtml && modCBAdminHelper::checkAccess($parentAccess)) { if (!$disabled) { if (!$depth) { $return .= '<li class="' . (checkJversion('3.0+') ? 'dropdown' : 'node') . '">' . '<a' . (checkJversion('3.0+') ? ' class="dropdown-toggle" data-toggle="dropdown"' : null) . ' href="#">' . $parentTitleCleanHtml . (checkJversion('3.0+') ? ' <span class="caret"></span>' : null) . '</a>'; } if ($items) { $menu = null; foreach ($items as $item) { $title = isset($item['title']) ? $item['title'] : null; $link = isset($item['link']) ? $item['link'] : null; $access = isset($item['access']) ? $item['access'] : null; $icon = isset($item['icon']) ? $item['icon'] : null; $target = isset($item['target']) ? $item['target'] : null; $subMenu = isset($item['submenu']) ? $item['submenu'] : array(); if ($title && $link && modCBAdminHelper::checkAccess($access)) { $subMenu = $subMenu ? modCBAdminHelper::getMenuItems($item, $subMenu, false, $depth + 1) : null; $menu .= '<li' . ($subMenu ? ' class="' . (checkJversion('3.0+') ? 'dropdown-submenu' : 'node') . '"' : null) . '>' . '<a' . ($icon ? ' class="' . (checkJversion('3.0+') ? 'menu-' : 'icon-16-') . htmlspecialchars($icon) . '"' : null) . ' href="' . htmlspecialchars($link) . '"' . ($target ? ' target="' . htmlspecialchars($target) . '"' : null) . '>' . '<span>' . $title . '</span>' . '</a>' . $subMenu . '</li>'; } elseif ($title == 'spacer') { $menu .= '<li class="' . (checkJversion('3.0+') ? 'divider' : 'separator') . '"><span></span></li>'; } } if ($menu) { $return .= '<ul' . (checkJversion('3.0+') ? ' class="dropdown-menu"' : null) . '>' . $menu . '</ul>'; } } if (!$depth) { $return .= '</li>'; } } elseif (!$depth) { $return .= '<li class="disabled">' . '<a href="#">' . $parentTitleCleanHtml . '</a>' . '</li>'; } } return $return; }