public function edit(Menu $menu) { Breadcrumbs::addCrumb(trans('menu::menu.breadcrumb.edit menu')); $menuItems = $this->menuItem->allRootsForMenu($menu->id); $menuStructure = $this->menuRenderer->renderForMenu($menu->id, $menuItems->nest()); return view('menu::admin.menus.edit', compact('menu', 'menuStructure')); }
public function handle(MenuWasCreated $event) { $data = ['menu_id' => $event->menu->id, 'position' => 0, 'is_root' => true]; foreach ($this->getEnabledLocales() as $locale) { $data[$locale]['title'] = 'root'; } $this->menuItem->create($data); }
/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, \Closure $next) { $locale = $this->request->segment(1) ?: App::getLocale(); $item = $this->menuItem->findByUriInLanguage($this->request->segment(2), $locale); if ($this->isOffline($item)) { App::abort(404); } return $next($request); }
/** * Delete a menu item * @param Request $request * @return mixed */ public function delete(Request $request) { $menuItem = $this->menuItem->find($request->get('menuitem')); if (!$menuItem) { return Response::json(['errors' => true]); } $this->menuItem->destroy($menuItem); return Response::json(['errors' => false]); }
public function edit(Menu $menu) { $menuItems = $this->menuItem->allRootsForMenu($menu->id); $menuStructure = $this->menuRenderer->renderForMenu($menu->id, $menuItems->nest()); $data = compact('menu', 'menuStructure'); if (is_module_enabled('Site')) { $data['supportedLocales'] = \Site::current()->siteLocales->lists('title', 'locale')->toArray(); } return view('menu::admin.menus.edit', $data); }
public function compose() { foreach ($this->menu->all() as $menu) { $menuTree = $this->menuItem->getTreeForMenu($menu->id); Menu::create($menu->name, function (Builder $menu) use($menuTree) { foreach ($menuTree as $menuItem) { $this->addItemToMenu($menuItem, $menu); } }); } }
public function destroy(Menu $menu, Menuitem $menuItem) { $this->menuItem->destroy($menuItem); flash(trans('menu::messages.menuitem deleted')); return redirect()->route('admin.menu.menu.edit', [$menu->id]); }
/** * @param string $uri * @param string $locale * @return object */ public function findByUriInLanguage($uri, $locale) { return $this->cache->tags($this->entityName, 'global')->remember("{$this->locale}.{$this->entityName}.findByUriInLanguage.{$uri}.{$locale}", $this->cacheTime, function () use($uri, $locale) { return $this->repository->findByUriInLanguage($uri, $locale); }); }
/** * Set the given parent id on the given menu item * * @param object $item * @param int $parent_id */ private function makeItemChildOf($item, $parent_id) { $this->menuItemRepository->update($item, compact('parent_id')); }