public function run()
 {
     //Выбираем меню админки - id = 1
     $menu = Menu::find(1);
     //Добавляем родительскую ссылку
     $link = Links::create(['link_name' => 'Комментарии', 'link_url' => 'admin/comment', 'image_url' => 'fa fa-comments', 'status' => 1]);
     //Привязываем к меню
     $menu->links()->attach([$link->id => ['sort' => 5]]);
 }
Example #2
0
 /**
  * @param View $view
  */
 public function compose(View $view)
 {
     //Получаем из БД все активные сссылки для админ меню, сортировка по возрастанию
     $links = Menu::find(1)->links()->orderBy('pivot_sort')->where('status', '=', 1)->get();
     //Если ссылок нет
     if (!$links->count()) {
         $this->menu = "<--!  NO LINKS  -->";
         $view->with('menu', $this->menu);
     } else {
         //Сортируем по родителю
         foreach ($links->toArray() as $item) {
             $this->linksArray[$item['parent_id']][] = $item;
         }
         $this->menu = "<ul class=\"sidebar-menu\">";
         $this->menu .= "<li class=\"header\">ADMIN MENU</li>";
         foreach ($this->linksArray[0] as $item) {
             //Есть ли у ссылки дети
             if (array_key_exists($item['id'], $this->linksArray)) {
                 //Активность категории
                 if (request()->is($item['link_url'] . "*")) {
                     $this->menu .= "<li class=\"active treeview\">";
                 } else {
                     $this->menu .= "<li class=\"treeview\">";
                 }
                 $this->menu .= "<a href=\"#\">";
                 $this->menu .= "<i class=\"" . $item['image_url'] . "\"></i> <span>" . $item['link_name'] . "</span>";
                 $this->menu .= "<i class=\"fa fa-angle-left pull-right\"></i></a>";
                 $this->menu .= "<ul class=\"treeview-menu\">";
                 //Обработка подкатегорий ссылок
                 $this->createMenu($item);
                 $this->menu .= "</ul></li>";
             } else {
                 //Активность ссылки
                 if (request()->path() == $item['link_url']) {
                     $this->menu .= "<li class=\"active\">";
                 } else {
                     $this->menu .= "<li>";
                 }
                 $this->menu .= "<a href=\"/" . $item['link_url'] . "\"><i class=\"" . $item['image_url'] . "\"></i> <span>" . $item['link_name'] . "</span></a></li>";
             }
         }
         $this->menu .= "</ul>";
         $view->with('menu', $this->menu);
     }
 }
Example #3
0
 /**
  * Просмотр ссылок меню, а также их добавление и удаление.
  * @param $id
  * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
  */
 public function getView($id)
 {
     //Получаем из БД список ссылок для выбранного меню
     $links = Menu::find($id)->links()->orderBy('pivot_sort')->get();
     //Получаем незадействованные в данном меню ссылки
     $newLinks = Links::whereNotIn('id', $links->lists('id'))->get();
     //Если ссылок нет
     if (!$links->count()) {
         return view('admin::admin.menu.view', array('tree' => $this->tree, 'id' => $id, 'newLinks' => $newLinks));
     } else {
         //Сортируем по родителю
         foreach ($links->toArray() as $item) {
             $this->linksArray[$item['parent_id']][] = $item;
         }
         //Сортируем массив
         foreach ($this->linksArray[self::$cnt] as $item) {
             $this->tree[self::$cnt]['id'] = $item['id'];
             $this->tree[self::$cnt]['span'] = "<span class=\"badge\">";
             $this->tree[self::$cnt]['link_name'] = $item['link_name'];
             $this->tree[self::$cnt]['link_url'] = $item['link_url'];
             $this->tree[self::$cnt]['pivot_id'] = $item['pivot']['id'];
             $this->tree[self::$cnt]['pivot_sort'] = $item['pivot']['sort'];
             //Увеличиваем значение счетчика
             self::$cnt++;
             //Есть ли у ссылки дети
             if (array_key_exists($item['id'], $this->linksArray)) {
                 $this->createTree($item);
             }
         }
         return view('admin::admin.menu.view', array('tree' => $this->tree, 'id' => $id, 'newLinks' => $newLinks));
     }
 }