public function editSetting(MenuRetrieveHandler $menuHandler, SiteHandler $siteHandler, ThemeHandler $themeHandler) { $config = app('xe.site')->getSiteConfig(); $siteKey = $siteHandler->getCurrentSiteKey(); $indexInstance = $siteHandler->getHomeInstanceId(); $menus = $menuHandler->getAllMenu($siteKey); $selectedTheme = $themeHandler->getSiteThemeId(); return \Presenter::make('settings.setting', compact('config', 'selectedTheme', 'menus', 'indexInstance')); }
/** * index * * @param IlluminateConfig $config laravel config * @param MenuRetrieveHandler $menuHandler menu handler * @param MenuCacheHandler $cacheHandler menu cache handler * @param SiteHandler $siteHandler site handler * * @return RendererInterface */ public function index(IlluminateConfig $config, MenuRetrieveHandler $menuHandler, MenuCacheHandler $cacheHandler, SiteHandler $siteHandler) { $siteKey = $siteHandler->getCurrentSiteKey(); $menus = $menuHandler->getAllMenu($siteKey); $homeMenuId = $siteHandler->getHomeInstanceId(); $menuMaxDepth = $config->get('xe.menu.maxDepth'); $transKey = []; foreach ($menus as $menu) { $transKey = array_merge($transKey, $cacheHandler->getMenuItemKeys($menu)); } // 메뉴 어드민 트리 뷰에서 필요한 고유 다국어 FrontEnd::translation(['xe::addItem', 'xe::goLink', 'xe::setHome']); // 메뉴 타이틀 user 다국어 Frontend::translation($transKey); return Presenter::make('menu.index', ['siteKey' => $siteKey, 'menus' => $menus, 'home' => $homeMenuId, 'maxDepth' => $menuMaxDepth]); }
/** * testGetAllMenuWithCache * * @return void */ public function testGetAllMenuWithCache() { $menuRepo = $this->menuRepository; $typeHandler = $this->typeHandler; $permissionHandler = $this->menuPermissionHandler; $cacheHandler = $this->cacheHandler; $menuPermission = $this->menuPermission; $dummyMenu1 = new MenuEntity(['id' => 'menu1', 'title' => 'testTitle1', 'description' => 'testDescription'], new TreeCollection([new MenuItem(['id' => 'testMenuItem1'])])); $dummyMenu2 = new MenuEntity(['id' => 'menu2', 'title' => 'testTitle2', 'description' => 'testDescription'], new TreeCollection([new MenuItem(['id' => 'testMenuItem2'])])); $dummyMenu3 = new MenuEntity(['id' => 'menu3', 'title' => 'testTitle3', 'description' => 'testDescription'], new TreeCollection([new MenuItem(['id' => 'testMenuItem3'])])); $menuHandler = new MenuRetrieveHandler($menuRepo, $typeHandler, $permissionHandler, $cacheHandler); $menuRepo->shouldReceive('findAllMenuIds')->andReturn(['menu1', 'menu2', 'menu3']); $cacheHandler->shouldReceive('isExistCachedMenu')->andReturn(true); $cacheHandler->shouldReceive('getCachedMenu')->with('menu1')->andReturn($dummyMenu1); $cacheHandler->shouldReceive('getCachedMenu')->with('menu2')->andReturn($dummyMenu2); $cacheHandler->shouldReceive('getCachedMenu')->with('menu3')->andReturn($dummyMenu3); $permissionHandler->shouldReceive('getMenuPermissions')->andReturn(['menu1' => $menuPermission, 'menu2' => $menuPermission, 'menu3' => $menuPermission, '' => $menuPermission, 'testMenuItem1' => $menuPermission, 'testMenuItem2' => $menuPermission, 'testMenuItem3' => $menuPermission]); $testSiteKey = 'default'; $menus = $menuHandler->getAllMenu($testSiteKey); $this->assertEquals(['menu1' => $dummyMenu1, 'menu2' => $dummyMenu2, 'menu3' => $dummyMenu3], $menus); }