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