Пример #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
 /**
  * Suggest menus (via json).
  *
  * @return void
  *
  * @Get("/suggest", name="admin-menus-suggest")
  */
 public function suggestAction()
 {
     $this->view->disable();
     $query = $this->request->get('query');
     if (!$query) {
         $this->response->setContent('[]')->send();
         return;
     }
     $results = Menu::find(["conditions" => "name LIKE ?1", "bind" => [1 => '%' . $query . '%']]);
     $data = [];
     foreach ($results as $result) {
         $data[] = ['id' => $result->id, 'label' => $result->name];
     }
     $this->response->setContent(json_encode($data))->send();
 }
Пример #3
0
 /**
  * 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);
     }
 }