コード例 #1
0
ファイル: MenusRepositoryTest.php プロジェクト: alpas29/cms
 public function setUp()
 {
     parent::setUp();
     // Menus are cached... so this static class
     // messes with our tests... so we do this little forget hack
     MenuCache::forgetMenu('Name');
     $this->DvsMenu = new \DvsMenu();
     $this->DvsMenuItem = new \DvsMenuItem();
     $this->DvsLanguage = new \DvsLanguage();
     $this->LanguageDetector = m::mock('Devise\\Languages\\LanguageDetector');
     $this->LanguageDetector->shouldReceive('current')->andReturn($this->DvsLanguage);
     $this->LanguageDetector->shouldReceive('primaryLanguageId')->andReturn(45);
     $this->UserHelper = m::mock('Devise\\Users\\UserHelper');
     $this->Input = m::mock('Illuminate\\Http\\Request');
     $Framework = m::mock('\\Devise\\Support\\Framework');
     $Framework->Input = $this->Input;
     $this->MenusRepository = new MenusRepository($this->DvsMenu, $this->DvsMenuItem, $this->LanguageDetector, $this->UserHelper, $Framework);
 }
コード例 #2
0
ファイル: MenusRepository.php プロジェクト: devisephp/cms
 /**
  * Traverses the menu recursively finding sub menus
  *
  * @param $depth
  * @param $page
  * @param $menu
  * @return mixed
  */
 private function traverseMenu($menu, $depth, $page)
 {
     $cache = MenuCache::loadMenu($menu->name);
     if (!$cache) {
         $lazyLoadString = $this->getLazyLoadByDepth('items', $depth);
         $menu->load($lazyLoadString);
         $menu->allowedMenuItems = $this->getAllowedMenuItemsFromMenu($menu);
         if ($page !== null) {
             $this->activeItemSiblings = array();
             $this->activeItemChildren = array();
             $this->locateCurrentMenuItem($page->id, $menu->allowedMenuItems);
         }
         MenuCache::saveMenu($menu, $this->activeItemChildren, $this->activeItemSiblings);
     } else {
         $menu = $cache['menu'];
     }
     return $menu->allowedMenuItems;
 }