/** * editItem * 선택된 메뉴의 아이템을 view & edit 페이지 구성 * * @param MenuRetrieveHandler $menuHandler menu handler * @param ModuleHandler $moduleHandler module handler * @param MenuConfigHandler $configHandler menu config handler * @param SiteHandler $siteHandler site handler * @param string $menuId menu id * @param string $itemId item id * * @return RendererInterface */ public function editItem(MenuRetrieveHandler $menuHandler, ModuleHandler $moduleHandler, MenuConfigHandler $configHandler, SiteHandler $siteHandler, $menuId, $itemId) { $menu = $menuHandler->getMenu($menuId); $item = $menu->getItem($itemId); try { $menuType = $moduleHandler->getModuleObject($item->type); } catch (NotFoundModuleException $e) { $menuType = null; } $homeId = $siteHandler->getHomeInstanceId(); $itemConfig = $configHandler->getMenuItemTheme($item); $desktopTheme = $itemConfig->getPure('desktopTheme'); $mobileTheme = $itemConfig->getPure('mobileTheme'); $parentThemeMode = false; if ($desktopTheme === null && $mobileTheme === null) { $parentThemeMode = true; } $parentConfig = $itemConfig->getParent(); return Presenter::make('menu.editItem', ['menu' => $menu, 'item' => $item, 'homeId' => $homeId, 'menuType' => $menuType, 'parentThemeMode' => $parentThemeMode, 'itemConfig' => $itemConfig, 'parentConfig' => $parentConfig]); }
/** * testGetMenuItemTheme * * @return void */ public function testGetMenuItemTheme() { // MenuItem $item $configManager = $this->configManager; $themeHandler = $this->themeHandler; $configManager->shouldReceive('get')->andReturn('blueTheme'); $dummyItem = new MenuItem(['id' => 'testMenu']); $dummyItem->setBreadCrumbs(['basic', 'notice']); $menuConfigHandler = new MenuConfigHandler($configManager, $themeHandler); $selectedTheme = $menuConfigHandler->getMenuItemTheme($dummyItem); $this->assertEquals('blueTheme', $selectedTheme); }