'Title', # will be translated by translator * 'link' => 'user/config', # route link * 'icon' => 'fa-book' # font-awesome icon * ] * @return void */ public static function addMenuItem($category, $position, array $menu) { $class = $category == "user" ? Events\ConfigureUserMenu::class : Events\ConfigureAdminMenu::class; Event::listen($class, function ($event) use ($menu, $position, $category) { $new = []; $offset = 0; foreach ($event->menu[$category] as $item) { // Push new menu items at the given position if ($offset == $position) { $new[] = $menu; } $new[] = $item; $offset++; } $event->menu[$category] = $new; }); } /** * Add a route. A router instance will be passed to the given callback. * * @param Closure $callback * * TODO: Needs to be tested. */ public static function addRoute(Closure $callback) { Event::listen(Events\ConfigureRoutes::class, function($event) use ($callback) { return call_user_func($callback, $event->router); }); } public static function registerPluginTransScripts($id) { Event::listen(Events\RenderingFooter::class, function($event) use ($id) { $path = app('plugins')->getPlugin($id)->getPath().'/'; $script = 'lang/'.config('app.locale').'/locale.js'; if (file_exists($path.$script)) { $event->addContent(''); } }, 999); } public static function addStyleFileToPage($urls, $pages = ['*'], $priority = 1) { Event::listen(Events\RenderingHeader::class, function($event) use ($urls, $pages) { foreach ($pages as $pattern) { if (! app('request')->is($pattern)) continue; foreach ((array) $urls as $url) { $event->addContent(""); } return; } }, $priority); } public static function addScriptFileToPage($urls, $pages = ['*'], $priority = 1) { Event::listen(Events\RenderingFooter::class, function($event) use ($urls, $pages) { foreach ($pages as $pattern) { if (! app('request')->is($pattern)) continue; foreach ((array) $urls as $url) { $event->addContent(""); } return; } }, $priority); } }