示例#1
0
 public static function getMenuItems($roleId = null)
 {
     $sections = Menu::where('type', 'section')->orderBy('order_index', 'asc')->get();
     $menu = array();
     foreach ($sections as $section) {
         $allowedItemsCount = 0;
         $menuItems = Menu::where('type', 'item')->where('id_section', $section->id)->orderBy('order_index', 'asc')->get();
         $filteredItems = array();
         foreach ($menuItems as $item) {
             if ($roleId !== null) {
                 if (self::checkAction($roleId, $item)) {
                     $filteredItems[] = $item;
                     $allowedItemsCount++;
                 }
             } else {
                 $filteredItems[] = $item;
                 $allowedItemsCount++;
             }
         }
         //Only show section when there are items to display
         if ($allowedItemsCount > 0 || $roleId === null) {
             $menu[] = ['section' => $section, 'items' => $filteredItems];
         }
     }
     //dd($menu);
     return $menu;
 }
示例#2
0
 /**
  * Handle an incoming request.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  \Closure  $next
  * @return mixed
  */
 public function handle($request, Closure $next, $currentRoute)
 {
     $menuItem = Menu::where('route', $currentRoute)->first();
     if ($menuItem !== null) {
         $section = Menu::findOrFail($menuItem->id_section);
         if ($section->name == 'toplevel') {
             session(['current_section' => $menuItem]);
         } else {
             session(['current_section' => $section]);
         }
     }
     return $next($request);
 }
示例#3
0
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function destroy(Request $request, $id)
 {
     $menuItem = Menu::findOrFail($id);
     if ($menuItem->type == "section") {
         $items = Menu::where('id_section', $menuItem->id)->get();
         if ($items !== null) {
             foreach ($items as $item) {
                 $item->delete();
             }
         }
     }
     $menuItem->delete();
     $message = $menuItem->name . ' removed successfully';
     if ($request->ajax()) {
         return $message;
     }
     Session::flash('message', $message);
     return redirect()->route('admin.menus.index');
 }