Example #1
0
 /**
  * Register a menu.
  *
  * @param \Caffeinated\Menus\Builder|\Caffeinated\Menus\Item $menuBuilder
  * @param \Yajra\CMS\Entities\Menu $menu
  * @return \Caffeinated\Menus\Builder|bool
  * @throws \Laracasts\Presenter\Exceptions\PresenterException
  */
 protected function registerMenu($menuBuilder, Menu $menu)
 {
     if (!$menuBuilder) {
         return false;
     }
     if (!$menu->published) {
         return false;
     }
     if ($menu->requiresAuthentication() && !auth()->check()) {
         return false;
     }
     if (count($menu->permissions)) {
         if ($menu->authorization === 'can') {
             foreach ($menu->permissions as $permission) {
                 if (!currentUser()->can($permission->slug)) {
                     return false;
                 }
             }
         } else {
             $permissions = $menu->permissions->pluck('slug')->toArray();
             if (!currentUser()->canAtLeast($permissions)) {
                 return false;
             }
         }
     }
     $item = $menuBuilder->add($menu->title, url($menu->present()->url))->attribute('target', $menu->present()->target)->attribute('title', $menu->present()->linkTitle);
     if ($menu->present()->linkStyle) {
         $item->attribute('style', $menu->present()->linkStyle);
     }
     if ($menu->isActive()) {
         session()->flash('active_menu', $menu);
     }
     return $item;
 }
Example #2
0
 /**
  * Rebuild menu entity nested set tree.
  */
 public function rebuildMenu()
 {
     Menu::rebuild(true);
     return $this->notifySuccess(trans('cms::utilities.menu.success'));
 }
Example #3
0
 /**
  * @param \Yajra\CMS\Entities\Navigation $navigation
  * @param \Yajra\CMS\Entities\Menu $menu
  * @return string
  * @throws \Exception
  */
 public function destroy(Navigation $navigation, Menu $menu)
 {
     if ($menu->isRoot()) {
         abort(404);
     }
     $navigation->menus()->findOrFail($menu->id)->delete();
     return $this->notifySuccess(trans('cms::menu.destroy.success'));
 }
Example #4
0
 /**
  * Get the query object to be processed by datatables.
  *
  * @return \Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder
  */
 public function query()
 {
     $users = Menu::query()->where('navigation_id', $this->navigation->id);
     return $this->applyScopes($users);
 }