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]]); }
/** * @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); } }
/** * Run the database seeds. * * @return void */ public function run() { //*********Создаем меню для админки************ $menu = Menu::create(['menu_name' => 'Admin', 'description' => 'Меню для админки', 'status' => 1]); //Главная $link = Links::create(['link_name' => 'Главная', 'link_url' => 'admin', 'image_url' => 'fa fa-home', 'status' => 1]); $menu->links()->attach([$link->id => ['sort' => 1]]); //Пользователи $link = Links::create(['link_name' => 'Пользователи', 'link_url' => 'admin/user', 'image_url' => 'fa fa-users', 'status' => 1]); $menu->links()->attach([$link->id => ['sort' => 2]]); //=============== Меню ================================== $link = Links::create(['link_name' => 'Меню', 'link_url' => 'admin/menu', 'image_url' => 'fa fa-bars', 'status' => 1]); $parent_id = $link->id; $menu->links()->attach([$link->id => ['sort' => 3]]); //Просмотр всех созданных Меню $link = Links::create(['link_name' => 'Все меню', 'link_url' => 'admin/menu', 'image_url' => 'fa fa-arrow-right', 'parent_id' => $parent_id, 'status' => 1]); $menu->links()->attach([$link->id => ['sort' => 1]]); //Добавить меню $link = Links::create(['link_name' => 'Добавить меню', 'link_url' => 'admin/menu/create', 'image_url' => 'fa fa-arrow-right', 'parent_id' => $parent_id, 'status' => 1]); $menu->links()->attach([$link->id => ['sort' => 2]]); //=============== Ссылки ============================= $link = Links::create(['link_name' => 'Ссылки', 'link_url' => 'admin/links', 'image_url' => 'fa fa-link', 'status' => 1]); $parent_id = $link->id; $menu->links()->attach([$link->id => ['sort' => 4]]); //Все cсылки $link = Links::create(['link_name' => 'Все ссылки', 'link_url' => 'admin/links', 'image_url' => 'fa fa-arrow-right', 'parent_id' => $parent_id, 'status' => 1]); $menu->links()->attach([$link->id => ['sort' => 1]]); //Добавить ссылку $link = Links::create(['link_name' => 'Добавить ссылку', 'link_url' => 'admin/links/create', 'image_url' => 'fa fa-arrow-right', 'parent_id' => $parent_id, 'status' => 1]); $menu->links()->attach([$link->id => ['sort' => 2]]); //================= Категории контента =============== $link = Links::create(['link_name' => 'Категории', 'link_url' => 'admin/category', 'image_url' => 'fa fa-newspaper-o', 'status' => 1]); $parent_id = $link->id; $menu->links()->attach([$link->id => ['sort' => 5]]); //категории материалов $link = Links::create(['link_name' => 'Категории', 'link_url' => 'admin/category', 'image_url' => 'fa fa-arrow-right', 'parent_id' => $parent_id, 'status' => 1]); $menu->links()->attach([$link->id => ['sort' => 1]]); //добавить категорию $link = Links::create(['link_name' => 'Создать категорию', 'link_url' => 'admin/category/create', 'image_url' => 'fa fa-arrow-right', 'parent_id' => $parent_id, 'status' => 1]); $menu->links()->attach([$link->id => ['sort' => 2]]); //================= Материалы сайта =============== $link = Links::create(['link_name' => 'Статьи', 'link_url' => 'admin/article', 'image_url' => 'fa fa-pencil', 'status' => 1]); $parent_id = $link->id; $menu->links()->attach([$link->id => ['sort' => 6]]); //Материалы сайта $link = Links::create(['link_name' => 'Все статьи', 'link_url' => 'admin/article', 'image_url' => 'fa fa-arrow-right', 'parent_id' => $parent_id, 'status' => 1]); $menu->links()->attach([$link->id => ['sort' => 1]]); //Добавить материал на сайт $link = Links::create(['link_name' => 'Добавить статью', 'link_url' => 'admin/article/create', 'image_url' => 'fa fa-arrow-right', 'parent_id' => $parent_id, 'status' => 1]); $menu->links()->attach([$link->id => ['sort' => 2]]); //======= Обратная связь ======= $link = Links::create(['link_name' => 'Обратная связь', 'link_url' => 'admin/feedback', 'image_url' => 'fa fa-commenting', 'status' => 1]); //Привязываем к меню $menu->links()->attach([$link->id => ['sort' => 7]]); //======== Контакты =========== $link = Links::create(['link_name' => 'Контакты', 'link_url' => 'admin/contact', 'image_url' => 'fa fa-phone', 'status' => 1]); //Привязываем к меню $menu->links()->attach([$link->id => ['sort' => 8]]); //======== Настройки =========== $link = Links::create(['link_name' => 'Настройки', 'link_url' => 'admin/settings', 'image_url' => 'fa fa-cogs', 'status' => 1]); //Привязываем к меню $menu->links()->attach([$link->id => ['sort' => 9]]); }
/** * Просмотр ссылок меню, а также их добавление и удаление. * @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)); } }