function getMenus($prefixSlug, array $menus = [], $package = 'livecms') { $view = ''; $subfolderPrefix = site()->subfolder; $subfolderPrefix = $subfolderPrefix ? $subfolderPrefix . '.' : $subfolderPrefix; foreach ($menus as $menu) { if (is_array($uri = $menu['uri'])) { $activeMenu = false; $canReadMenu = false; foreach (collect($uri)->pluck('uri')->toArray() as $uri) { $slug = getSlug($uri, $package); $activeMenu = $activeMenu || isInCurrentRoute($subfolderPrefix . $prefixSlug . '.' . $slug . '.'); $canReadMenu = $canReadMenu || canRead($subfolderPrefix . $prefixSlug . '.' . $slug . '.index'); } if ($canReadMenu) { $view .= '<li class="' . ($activeMenu ? 'active' : '') . ' treeview"> <a href="#"><i class="fa fa-' . $menu['icon'] . '"></i> <span>' . trans('livecms::' . $package . '.' . $menu['title']) . '</span> <i class="fa fa-angle-left pull-right"></i></a> <ul class="treeview-menu">'; foreach ($menu['uri'] as $subMenu) { if (canRead($menuUrl = ($menuLink = $subfolderPrefix . $prefixSlug . '.' . getSlug($subMenu['uri'], $package) . '.') . 'index')) { $view .= '<li class="' . (isInCurrentRoute($menuLink) ? 'active' : '') . '"><a href="' . route($menuUrl) . '"><i class="fa fa-' . $subMenu['icon'] . '"></i> <span>' . trans('livecms::' . $package . '.' . $subMenu['title']) . '</span></a></li>'; } } $view .= '</ul> '; } } else { if (canRead($menuUrl = ($menuLink = $subfolderPrefix . $prefixSlug . '.' . getSlug($menu['uri'], $package) . '.') . 'index')) { $view .= '<li class="' . (isInCurrentRoute($menuLink) ? 'active' : '') . '"><a href="' . route($menuUrl) . '"><i class="fa fa-' . $menu['icon'] . '"></i> <span>' . trans('livecms::' . $package . '.' . $menu['title']) . '</span></a></li>'; } } } return $view; }
function getCategories($parentId = null, &$items = array()) { $q = null; \cf\createStaticQuery($q, "\n\t\tSELECT id, name, url, tree_id, list_id\n\t\tFROM cf_admin_categories\n\t\tWHERE parent_id=:parent OR (parent_id IS NULL AND :parent IS NULL)\n\t\tORDER BY sort_order\n\t"); $q->setParam('parent', $parentId); $q->execute(); while ($q->fetch()) { $item = array('id' => $q->at('id'), 'name' => $q->at('name'), 'url' => $q->at('url') ? $q->at('url') . '&mid=' . $q->at('id') : (canRead($q->at('list_id')) ? 'list.php?vid=' . $q->at('list_id') . '&mid=' . $q->at('id') : ''), 'children' => array()); getCategories($q->at('id'), $item['children']); if ($q->at('tree_id') && canRead($q->at('tree_id'))) { getTree($q->at('tree_id'), null, $item['children'], $q->at('list_id') && canRead($q->at('list_id')) ? $q->at('list_id') : false, $q->at('id')); } if (count($item['children']) || $item['url']) { if (!$item['url']) { $item['url'] = 'category.php?id=' . $q->at('id') . '&mid=' . $q->at('id'); } $items[] = $item; } } $q->close(); return $items; }