/** * Define your route model bindings, pattern filters, etc. * * @param \Illuminate\Routing\Router $router * @return void */ public function boot(Router $router) { //============ //== ASSETS == //============ $this->loadViewsFrom(__DIR__ . '/../resources/views', static::PACKAGE_NAME); $this->publishes([__DIR__ . '/../resources/views' => base_path('resources/views/vendor/' . static::PACKAGE_NAME)]); $this->loadViewsFrom(__DIR__ . '/../resources/admin_views', static::PACKAGE_NAME . '_admin'); $this->publishesAdmin([__DIR__ . '/../resources/admin_views' => base_path('resources/views/vendor/' . static::PACKAGE_NAME . '_admin')]); $this->loadTranslationsFrom('/', static::PACKAGE_NAME); $this->publishes([__DIR__ . '/../assets/' => public_path('vendor/translation')], 'public'); $this->publishes([__DIR__ . '/../database/migrations/' => database_path('/migrations')], 'migrations'); $this->publishes([__DIR__ . '/../config/' . static::PACKAGE_NAME . '.php' => config_path('neonbug/' . static::PACKAGE_NAME . '.php')]); //============ //== ROUTES == //============ $language = App::make('Language'); $locale = $language == null ? Config::get('app.default_locale') : $language->locale; $admin_language = App::make('AdminLanguage'); $admin_locale = $admin_language == null ? Config::get('app.admin_default_locale') : $admin_language->locale; $resource_repo = App::make('ResourceRepository'); //admin $router->group(['prefix' => $admin_locale . '/admin/' . static::PREFIX, 'middleware' => ['auth.admin', 'admin.menu'], 'role' => static::ROLE, 'menu.icon' => 'world', 'weight' => 6], function ($router) { $router->get('list', ['as' => static::PREFIX . '::admin::list', 'uses' => static::ADMIN_CONTROLLER . '@adminList']); $router->get('edit/{id}', ['as' => static::PREFIX . '::admin::edit', 'uses' => static::ADMIN_CONTROLLER . '@adminEdit']); $router->post('edit/{id}', ['as' => static::PREFIX . '::admin::edit-save', 'uses' => static::ADMIN_CONTROLLER . '@adminEditPost']); }); $router->group(['prefix' => $admin_locale . '/admin/' . static::PREFIX, 'middleware' => ['auth.admin'], 'role' => static::ROLE], function ($router) { $router->post('delete', ['as' => static::PREFIX . '::admin::delete', 'uses' => static::ADMIN_CONTROLLER . '@adminDeletePost']); }); parent::boot($router); }
/** * Define your route model bindings, pattern filters, etc. * * @param \Illuminate\Routing\Router $router * @return void */ public function boot(Router $router) { //============ //== ASSETS == //============ $this->loadViewsFrom(__DIR__ . '/../resources/views', static::PACKAGE_NAME); $this->publishes([__DIR__ . '/../resources/views' => base_path('resources/views/vendor/' . static::PACKAGE_NAME)]); $this->loadViewsFrom(__DIR__ . '/../resources/admin_views', static::PACKAGE_NAME . '_admin'); $this->publishesAdmin([__DIR__ . '/../resources/admin_views' => base_path('resources/views/vendor/' . static::PACKAGE_NAME . '_admin')]); $this->loadTranslationsFrom('/', static::PACKAGE_NAME); $this->publishes([__DIR__ . '/../database/migrations/' => database_path('/migrations')], 'migrations'); $this->publishes([__DIR__ . '/../config/' . static::PACKAGE_NAME . '.php' => config_path('neonbug/' . static::PACKAGE_NAME . '.php')]); //============ //== ROUTES == //============ $language = App::make('Language'); $locale = $language == null ? Config::get('app.default_locale') : $language->locale; $admin_language = App::make('AdminLanguage'); $admin_locale = $admin_language == null ? Config::get('app.admin_default_locale') : $admin_language->locale; $resource_repo = App::make('ResourceRepository'); //frontend $router->group(['middleware' => ['online'], 'prefix' => $locale . '/' . trans(static::PACKAGE_NAME . '::frontend.route.prefix')], function ($router) use($locale, $resource_repo, $language) { $router->get('/', ['as' => static::PREFIX . '::index', 'uses' => static::CONTROLLER . '@index']); $router->get('index', ['uses' => static::CONTROLLER . '@index']); $router->get('item/{id}', ['as' => static::PREFIX . '::item', 'uses' => static::CONTROLLER . '@item']); $router->get('preview/{key}', ['as' => static::PREFIX . '::preview', 'uses' => static::CONTROLLER . '@preview']); if ($language != null) { $slugs = $resource_repo->getSlugs($language->id_language, static::TABLE_NAME); foreach ($slugs as $slug) { $router->get($slug->value, ['as' => static::PREFIX . '::slug::' . $slug->value, function () use($slug) { $controller = App::make(static::CONTROLLER); return $controller->callAction('item', ['id' => $slug->id_row]); }]); } } }); //admin $router->group(['prefix' => $admin_locale . '/admin/' . static::PREFIX, 'middleware' => ['auth.admin', 'admin.menu'], 'role' => static::ROLE, 'menu.icon' => 'user', 'weight' => 7], function ($router) { $router->get('list', ['as' => static::PREFIX . '::admin::list', 'uses' => static::ADMIN_CONTROLLER . '@adminList']); $router->get('add', ['as' => static::PREFIX . '::admin::add', 'uses' => static::ADMIN_CONTROLLER . '@adminAdd']); $router->post('add', ['as' => static::PREFIX . '::admin::add-save', 'uses' => static::ADMIN_CONTROLLER . '@adminAddPost']); $router->get('edit/{id}', ['as' => static::PREFIX . '::admin::edit', 'uses' => static::ADMIN_CONTROLLER . '@adminEdit']); $router->post('edit/{id}', ['as' => static::PREFIX . '::admin::edit-save', 'uses' => static::ADMIN_CONTROLLER . '@adminEditPost']); }); $router->group(['prefix' => $admin_locale . '/admin/' . static::PREFIX, 'middleware' => ['auth.admin'], 'role' => static::ROLE], function ($router) { $router->post('delete', ['as' => static::PREFIX . '::admin::delete', 'uses' => static::ADMIN_CONTROLLER . '@adminDeletePost']); $router->post('check-slug', ['as' => static::PREFIX . '::admin::check-slug', 'uses' => static::ADMIN_CONTROLLER . '@adminCheckSlugPost']); }); //============ //== EVENTS == //============ Event::subscribe('\\Neonbug\\User\\Handlers\\Events\\RoleEventHandler'); parent::boot($router); }
/** * Define your route model bindings, pattern filters, etc. * * @param \Illuminate\Routing\Router $router * @return void */ public function boot(Router $router) { //============ //== ASSETS == //============ $this->loadViewsFrom(__DIR__ . '/../resources/views', static::PACKAGE_NAME); $this->publishes([__DIR__ . '/../resources/views' => base_path('resources/views/vendor/' . static::PACKAGE_NAME)]); $this->loadViewsFrom(__DIR__ . '/../resources/admin_views', static::PACKAGE_NAME . '_admin'); $this->publishesAdmin([__DIR__ . '/../resources/admin_views' => base_path('resources/views/vendor/' . static::PACKAGE_NAME . '_admin')]); $this->loadTranslationsFrom('/', static::PACKAGE_NAME); $this->publishes([__DIR__ . '/../database/migrations/' => database_path('/migrations')], 'migrations'); $this->publishes([__DIR__ . '/../config/' . static::PACKAGE_NAME . '.php' => config_path('neonbug/' . static::PACKAGE_NAME . '.php')]); //============ //== ROUTES == //============ $language = App::make('Language'); $locale = $language == null ? Config::get('app.default_locale') : $language->locale; $admin_language = App::make('AdminLanguage'); $admin_locale = $admin_language == null ? Config::get('app.admin_default_locale') : $admin_language->locale; $resource_repo = App::make('ResourceRepository'); //frontend $slug_routes_at_root = Config::get('neonbug.text.slug_routes_at_root', false); $slugs = $language == null ? null : $resource_repo->getSlugs($language->id_language, static::TABLE_NAME); $router->group(['middleware' => ['online'], 'prefix' => $locale . '/' . trans(static::PACKAGE_NAME . '::frontend.route.prefix')], function ($router) use($slugs, $slug_routes_at_root) { $router->get('/', ['as' => static::PREFIX . '::index', 'uses' => static::CONTROLLER . '@index']); $router->get('index', ['uses' => static::CONTROLLER . '@index']); $router->get('item/{id}', ['as' => static::PREFIX . '::item', 'uses' => static::CONTROLLER . '@item']); $router->get('preview/{key}', ['as' => static::PREFIX . '::preview', 'uses' => static::CONTROLLER . '@preview']); if ($slugs != null) { $this->setRoutesFromSlugs($router, $slugs, $slug_routes_at_root === true ? 'default' : ''); } }); //put routes at root level (i.e. /en/contents/abc is also accessible via /en/abc) if ($slug_routes_at_root === true) { $router->group(['middleware' => ['online'], 'prefix' => $locale], function ($router) use($slugs) { if ($slugs != null) { $this->setRoutesFromSlugs($router, $slugs); } }); } //admin $router->group(['prefix' => $admin_locale . '/admin/' . static::PREFIX, 'middleware' => ['auth.admin', 'admin.menu'], 'role' => static::ROLE, 'menu.icon' => 'file text outline'], function ($router) { $router->get('list', ['as' => static::PREFIX . '::admin::list', 'uses' => static::ADMIN_CONTROLLER . '@adminList']); $router->get('add', ['as' => static::PREFIX . '::admin::add', 'uses' => static::ADMIN_CONTROLLER . '@adminAdd']); $router->post('add', ['as' => static::PREFIX . '::admin::add-save', 'uses' => static::ADMIN_CONTROLLER . '@adminAddPost']); $router->get('edit/{id}', ['as' => static::PREFIX . '::admin::edit', 'uses' => static::ADMIN_CONTROLLER . '@adminEdit']); $router->post('edit/{id}', ['as' => static::PREFIX . '::admin::edit-save', 'uses' => static::ADMIN_CONTROLLER . '@adminEditPost']); $router->post('delete', ['as' => static::PREFIX . '::admin::delete', 'uses' => static::ADMIN_CONTROLLER . '@adminDeletePost']); $router->post('check-slug', ['as' => static::PREFIX . '::admin::check-slug', 'uses' => static::ADMIN_CONTROLLER . '@adminCheckSlugPost']); }); parent::boot($router); }
/** * Define your route model bindings, pattern filters, etc. * * @param \Illuminate\Routing\Router $router * @return void */ public function boot(Router $router) { //============ //== ASSETS == //============ $this->loadViewsFrom(__DIR__ . '/../resources/views', static::PACKAGE_NAME); $this->loadViewsFrom(__DIR__ . '/../resources/admin_views', static::PACKAGE_NAME . '_admin'); $this->loadTranslationsFrom('/', 'common'); $this->publishes([__DIR__ . '/../database/migrations/' => database_path('/migrations')], 'migrations'); $this->publishes([__DIR__ . '/../assets/' => public_path('vendor/common')], 'public'); $this->publishes([__DIR__ . '/../config/' . static::PACKAGE_NAME . '.php' => config_path('neonbug/' . static::PACKAGE_NAME . '.php')]); //============ //== ROUTES == //============ $language = App::make('Language'); $locale = $language == null ? Config::get('app.default_locale') : $language->locale; $admin_language = App::make('AdminLanguage'); $admin_locale = $admin_language == null ? Config::get('app.admin_default_locale') : $admin_language->locale; View::composer('common::admin', function ($view) use($router) { $menu_items = []; $routes = $router->getRoutes(); foreach ($routes as $route) { if (stripos($route->getName(), '::admin::') !== false) { if (!in_array('admin.menu', $route->middleware())) { continue; } if (!in_array('GET', $route->getMethods())) { continue; } //only list routes for GET if (sizeof($route->parameterNames()) > 0) { continue; } //check for required role $action = $route->getAction(); if (!array_key_exists('role', $action)) { continue; } $required_role = $action['role']; if ($required_role != '*') { $roles = Auth::user()->roles; $has_role = false; foreach ($roles as $role) { if ($role->id_role == 'admin' || $role->id_role == $required_role) { $has_role = true; break; } } if (!$has_role) { continue; } } //transform the route into menu item $arr = explode('::', $route->getName()); if (!array_key_exists($arr[0], $menu_items)) { $menu_items[$arr[0]] = ['title' => $arr[0], 'icon' => array_key_exists('menu.icon', $route->getAction()) ? $route->getAction()['menu.icon'] : 'arrow right', 'weight' => array_key_exists('weight', $route->getAction()) ? $route->getAction()['weight'] : 5, 'items' => []]; } $menu_items[$arr[0]]['items'][] = ['route' => $route->getName(), 'title' => $arr[2]]; } } $view->menu_items = array_values($menu_items); usort($view->menu_items, function ($a, $b) { if ($a['weight'] < $b['weight']) { return -1; } if ($a['weight'] > $b['weight']) { return 1; } return 0; }); $view->withEncryptedCsrfToken(Crypt::encrypt(csrf_token())); $view->withUser(Auth::user()); }); view()->share('formatter', App::make('\\Neonbug\\Common\\Helpers\\FormatterHelper')); //admin $router->get('admin', function () { return redirect(route('admin-home')); }); $router->group(['prefix' => $admin_locale . '/admin'], function ($router) { $auth_controller = '\\Neonbug\\Common\\Http\\Controllers\\Auth\\AuthController'; $router->get('login', ['as' => 'admin-login', 'uses' => $auth_controller . '@getLogin']); $router->post('login', ['uses' => $auth_controller . '@postLogin']); $router->get('logout', ['as' => 'admin-logout', 'uses' => $auth_controller . '@getLogout']); $router->post('check-token', ['as' => 'admin-check-token', function () { return ['success' => true, 'token' => csrf_token()]; }]); $router->get('token', ['as' => 'admin-token', function () { return ['token' => csrf_token(), 'encrypted_token' => Crypt::encrypt(csrf_token())]; }]); }); $router->group(['prefix' => $admin_locale . '/admin', 'middleware' => ['auth.admin']], function ($router) { $router->group(['role' => '*'], function ($router) { $router->get('/', ['as' => 'admin-home', 'uses' => '\\Neonbug\\Common\\Http\\Controllers\\AdminController@index']); $router->get('/dashboard/analytics-data', ['as' => 'admin-dashboard-analytics-data', 'uses' => '\\Neonbug\\Common\\Http\\Controllers\\AdminController@getAnalyticsData']); }); }); //============ //== EVENTS == //============ Event::subscribe('\\Neonbug\\Common\\Handlers\\Events\\DropdownEventHandler'); parent::boot($router); }