public function testGetCurrentInstanceId()
 {
     /**
      * @var InstanceConfig $instanceConfig
      */
     $instanceConfig = InstanceConfig::instance();
     $instanceConfig->setInstanceId('testInstanceId');
     $instanceId = getCurrentInstanceId();
     $this->assertEquals('testInstanceId', $instanceId);
 }
 protected function getMenu($config, $menuName, $setSelected = false)
 {
     $menuId = array_get($config, $menuName);
     $selectedMenuItem = null;
     $menuItems = [];
     if ($menuId !== null) {
         $mainmenu = \Menu::getMenu($menuId);
         $menuItems = $mainmenu->getItems();
         $currentInstanceId = getCurrentInstanceId();
         if ($currentInstanceId !== null && $mainmenu->hasItem($currentInstanceId)) {
             $mainmenu->setItemSelected($currentInstanceId);
             if ($setSelected) {
                 $this->selectedMenu = $mainmenu->getItem($currentInstanceId);
             }
         }
     }
     return $menuItems;
 }
Example #3
0
 /**
  * 메뉴를 html 마크업으로 출력할 때, 사용하기 쉽도록 메뉴아이템 리스트를 제공한다.
  *
  * @package Xpressengine\Menu
  *
  * @param string $menuId 출력할 메뉴의 ID
  *
  * @return Illuminate\Support\Collection 메뉴아이템 리스트
  */
 function menu_list($menuId)
 {
     $menu = null;
     if ($menuId !== null) {
         $menu = app('xe.menu')->get($menuId, ['items.basicImage', 'items.hoverImage', 'items.selectedImage', 'items.mBasicImage', 'items.mHoverImage', 'items.mSelectedImage']);
     }
     /** @var Xpressengine\Menu\Models\Menu $menu */
     if ($menu !== null) {
         if (!function_exists('removeInvisible')) {
             /**
              * 보이지 않는(보기 권한이 없는) 메뉴는 제외시킨다.
              *
              * @param \Xpressengine\Menu\Models\MenuItem $item menu item
              * @param \Xpressengine\Menu\Models\Menu     $menu menu
              *
              * @return null|\Xpressengine\Menu\Models\MenuItem
              */
             function removeInvisible($item, $menu)
             {
                 // resolve item
                 if (Gate::denies('visible', [$item, $menu])) {
                     return null;
                 }
                 // resolve child menuitems of item
                 $children = new \Illuminate\Support\Collection();
                 foreach ($item['children'] as $child) {
                     if ($new = removeInvisible($child, $menu)) {
                         if ($new) {
                             $children[] = $new;
                         }
                     }
                 }
                 $item['children'] = $children;
                 return $item;
             }
         }
         $current = getCurrentInstanceId();
         if ($current !== null) {
             $menu->setItemSelected($current);
         }
         $tree = $menu->getTree()->getTreeNodes();
         // resolve menu visible
         $menuTree = [];
         foreach ($tree as $item) {
             if ($new = removeInvisible($item, $menu)) {
                 $menuTree[] = $new;
             }
         }
         return $menuTree;
     } else {
         return new Illuminate\Support\Collection();
     }
 }