예제 #1
0
 /**
  * Main action.
  *
  * @return mixed
  */
 public function indexAction()
 {
     $this->view->title = $this->getParam('title');
     $menuId = $this->getParam('menu_id');
     $menu = null;
     if ($menuId) {
         $menu = Menu::findFirst($menuId);
     }
     if (!$menu) {
         return $this->setNoRender();
     }
     $menuClass = $this->getParam('class', 'nav');
     if (empty($menuClass)) {
         $menuClass = 'nav';
     }
     $items = $this->_composeNavigationItems($menu->getMenuItems(['parent_id IS NULL', 'order' => 'item_order ASC']));
     if (empty($items)) {
         return $this->setNoRender();
     }
     $navigation = new Navigation();
     $navigation->setListClass($menuClass)->setItems($items)->setActiveItem($this->dispatcher->getActionName());
     $this->view->navigation = $navigation;
 }
예제 #2
0
 /**
  * Manage menu items.
  *
  * @param int $id Menu identity.
  *
  * @return void|ResponseInterface
  *
  * @Get("/manage/{id:[0-9]+}", name="admin-menus-manage")
  */
 public function manageAction($id)
 {
     $item = Menu::findFirst($id);
     if (!$item) {
         return $this->response->redirect(['for' => "admin-menus"]);
     }
     $parentId = $this->request->get('parent_id', 'int');
     if ($parentId) {
         $parent = MenuItem::findFirst($parentId);
         // Get all parents.
         $flag = true;
         $parents = [];
         $parents[] = $currentParent = $parent;
         while ($flag) {
             if ($currentParent->parent_id) {
                 $parents[] = $currentParent = $currentParent->getParent();
             } else {
                 $flag = false;
             }
         }
         $parents = array_reverse($parents);
         $this->view->parent = $parent;
         $this->view->parents = $parents;
         $this->view->items = $parent->getMenuItems(['order' => 'item_order ASC']);
     } else {
         $this->view->items = $item->getMenuItems(['parent_id IS NULL', 'order' => 'item_order ASC']);
     }
     $this->view->menu = $item;
 }
예제 #3
0
파일: MenuItem.php 프로젝트: biggtfish/cms
 /**
  * Returns parent object, it can be MenuItem or Menu (if there is no parent_id).
  *
  * @return MenuItem|Menu
  */
 public function getParent()
 {
     if ($this->parent_id) {
         return self::findFirst($this->parent_id);
     } else {
         return Menu::findFirst($this->menu_id);
     }
 }