Пример #1
0
 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;
 }
Пример #2
0
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;
}