add() public method

Add an item to the defined menu.
public add ( string $title, array | string $options = '' ) : Item
$title string
$options array | string
return Item
Beispiel #1
0
 /**
  * Adds a sub item to the menu.
  *
  * @param  string        $title
  * @param  array|string  $options
  * @return \Caffeinated\Menus\Item
  */
 public function add($title, $options = '')
 {
     if (!is_array($options)) {
         $url = $options;
         $options = array();
         $options['url'] = $url;
     }
     $options['parent'] = $this->id;
     return $this->builder->add($title, $options);
 }
 /**
  * Build a level of menu
  *
  * @param  array  $config
  * @param  Caffeinated\Menus\Builder $menu
  * @param  string|null $namespace
  * @return void
  */
 public function build(array $config, Builder $menu, $namespace = null)
 {
     foreach ($config as $key => $value) {
         $route = null;
         if (isset($value['route'])) {
             $route = ['route' => $value['route']];
         }
         if (isset($value['url'])) {
             $route = $value['url'];
         }
         if ($namespace) {
             $menu->get(strtolower($namespace))->add($key, $route)->data('permissions', isset($value['permissions']) ? $value['permissions'] : null);
         } else {
             $menu->add($key, $route)->data('permissions', isset($value['permissions']) ? $value['permissions'] : null);
         }
         if (isset($value['children'])) {
             $this->build($value['children'], $menu, $key);
         }
     }
 }
Beispiel #3
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;
 }