diff --git a/modules/backend/ServiceProvider.php b/modules/backend/ServiceProvider.php index 581f9dc26..e81aa6b9d 100644 --- a/modules/backend/ServiceProvider.php +++ b/modules/backend/ServiceProvider.php @@ -22,9 +22,105 @@ class ServiceProvider extends ModuleServiceProvider { parent::register('backend'); - /* - * Register widgets - */ + $this->registerMailer(); + $this->registerAssetBundles(); + + // Disabled for now + // if (App::runningInBackend()) { + $this->registerBackendNavigation(); + $this->registerBackendWidgets(); + $this->registerBackendPermissions(); + $this->registerBackendSettings(); + // } + } + + /** + * Bootstrap the module events. + * + * @return void + */ + public function boot() + { + parent::boot('backend'); + } + + /** + * Register mail templates + */ + protected function registerMailer() + { + MailTemplate::registerCallback(function ($template) { + $template->registerMailTemplates([ + 'backend::mail.invite' => 'Invitation for newly created administrators.', + 'backend::mail.restore' => 'Password reset instructions for backend-end administrators.', + ]); + }); + } + + /** + * Register asset bundles + */ + protected function registerAssetBundles() + { + CombineAssets::registerCallback(function($combiner) { + $combiner->registerBundle('~/modules/backend/assets/less/controls.less'); + $combiner->registerBundle('~/modules/backend/assets/less/october.less'); + $combiner->registerBundle('~/modules/backend/assets/js/october.js'); + $combiner->registerBundle('~/modules/backend/assets/js/vendor/vendor.js'); + $combiner->registerBundle('~/modules/backend/widgets/table/assets/js/build.js'); + $combiner->registerBundle('~/modules/backend/formwidgets/datepicker/assets/js/build.js'); + $combiner->registerBundle('~/modules/backend/formwidgets/richeditor/assets/less/richeditor.less'); + $combiner->registerBundle('~/modules/backend/formwidgets/richeditor/assets/js/build.js'); + $combiner->registerBundle('~/modules/backend/formwidgets/codeeditor/assets/less/codeeditor.less'); + }); + } + + /* + * Register navigation + */ + protected function registerBackendNavigation() + { + BackendMenu::registerCallback(function ($manager) { + $manager->registerMenuItems('October.Backend', [ + 'dashboard' => [ + 'label' => 'backend::lang.dashboard.menu_label', + 'icon' => 'icon-dashboard', + 'url' => Backend::url('backend'), + 'permissions' => ['backend.access_dashboard'], + 'order' => 1 + ] + ]); + }); + } + + /* + * Register permissions + */ + protected function registerBackendPermissions() + { + BackendAuth::registerCallback(function ($manager) { + $manager->registerPermissions('October.Backend', [ + 'backend.access_dashboard' => [ + 'label' => 'system::lang.permissions.view_the_dashboard', + 'tab' => 'system::lang.permissions.name' + ], + 'backend.manage_users' => [ + 'label' => 'system::lang.permissions.manage_other_administrators', + 'tab' => 'system::lang.permissions.name' + ], + 'backend.manage_branding' => [ + 'label' => 'system::lang.permissions.manage_branding', + 'tab' => 'system::lang.permissions.name' + ] + ]); + }); + } + + /* + * Register widgets + */ + protected function registerBackendWidgets() + { WidgetManager::instance()->registerFormWidgets(function ($manager) { $manager->registerFormWidget('Backend\FormWidgets\CodeEditor', [ 'label' => 'Code editor', @@ -71,25 +167,13 @@ class ServiceProvider extends ModuleServiceProvider 'code' => 'repeater' ]); }); + } - /* - * Register navigation - */ - BackendMenu::registerCallback(function ($manager) { - $manager->registerMenuItems('October.Backend', [ - 'dashboard' => [ - 'label' => 'backend::lang.dashboard.menu_label', - 'icon' => 'icon-dashboard', - 'url' => Backend::url('backend'), - 'permissions' => ['backend.access_dashboard'], - 'order' => 1 - ] - ]); - }); - - /* - * Register settings - */ + /* + * Register settings + */ + protected function registerBackendSettings() + { SettingsManager::instance()->registerCallback(function ($manager) { $manager->registerSettingItems('October.Backend', [ 'branding' => [ @@ -140,60 +224,5 @@ class ServiceProvider extends ModuleServiceProvider ] ]); }); - - /* - * Register permissions - */ - BackendAuth::registerCallback(function ($manager) { - $manager->registerPermissions('October.Backend', [ - 'backend.access_dashboard' => [ - 'label' => 'system::lang.permissions.view_the_dashboard', - 'tab' => 'system::lang.permissions.name' - ], - 'backend.manage_users' => [ - 'label' => 'system::lang.permissions.manage_other_administrators', - 'tab' => 'system::lang.permissions.name' - ], - 'backend.manage_branding' => [ - 'label' => 'system::lang.permissions.manage_branding', - 'tab' => 'system::lang.permissions.name' - ] - ]); - }); - - /* - * Register mail templates - */ - MailTemplate::registerCallback(function ($template) { - $template->registerMailTemplates([ - 'backend::mail.invite' => 'Invitation for newly created administrators.', - 'backend::mail.restore' => 'Password reset instructions for backend-end administrators.', - ]); - }); - - /* - * Register asset bundles - */ - CombineAssets::registerCallback(function($combiner) { - $combiner->registerBundle('~/modules/backend/assets/less/controls.less'); - $combiner->registerBundle('~/modules/backend/assets/less/october.less'); - $combiner->registerBundle('~/modules/backend/assets/js/october.js'); - $combiner->registerBundle('~/modules/backend/assets/js/vendor/vendor.js'); - $combiner->registerBundle('~/modules/backend/widgets/table/assets/js/build.js'); - $combiner->registerBundle('~/modules/backend/formwidgets/datepicker/assets/js/build.js'); - $combiner->registerBundle('~/modules/backend/formwidgets/richeditor/assets/less/richeditor.less'); - $combiner->registerBundle('~/modules/backend/formwidgets/richeditor/assets/js/build.js'); - $combiner->registerBundle('~/modules/backend/formwidgets/codeeditor/assets/less/codeeditor.less'); - }); - } - - /** - * Bootstrap the module events. - * - * @return void - */ - public function boot() - { - parent::boot('backend'); } } diff --git a/modules/backend/helpers/Backend.php b/modules/backend/helpers/Backend.php index 814e20329..7f4a66106 100644 --- a/modules/backend/helpers/Backend.php +++ b/modules/backend/helpers/Backend.php @@ -15,13 +15,20 @@ use Backend\Classes\Skin; */ class Backend { + /** + * Returns the backend URI segment. + */ + public function uri() + { + return Config::get('cms.backendUri', 'backend'); + } + /** * Returns a URL in context of the Backend */ public function url($path = null, $parameters = [], $secure = null) { - $backendUri = Config::get('cms.backendUri'); - return Url::to($backendUri . '/' . $path, $parameters, $secure); + return Url::to($this->uri() . '/' . $path, $parameters, $secure); } /** @@ -29,7 +36,7 @@ class Backend */ public function baseUrl($path = null) { - $backendUri = Config::get('cms.backendUri'); + $backendUri = $this->uri(); $baseUrl = Request::getBaseUrl(); if ($path === null) { @@ -54,8 +61,7 @@ class Backend */ public function redirect($path, $status = 302, $headers = [], $secure = null) { - $backendUri = Config::get('cms.backendUri'); - return Redirect::to($backendUri . '/' . $path, $status, $headers, $secure); + return Redirect::to($this->uri() . '/' . $path, $status, $headers, $secure); } /** @@ -63,8 +69,7 @@ class Backend */ public function redirectGuest($path, $status = 302, $headers = [], $secure = null) { - $backendUri = Config::get('cms.backendUri'); - return Redirect::guest($backendUri . '/' . $path, $status, $headers, $secure); + return Redirect::guest($this->uri() . '/' . $path, $status, $headers, $secure); } /** @@ -72,7 +77,6 @@ class Backend */ public function redirectIntended($path, $status = 302, $headers = [], $secure = null) { - $backendUri = Config::get('cms.backendUri'); - return Redirect::intended($backendUri . '/' . $path, $status, $headers, $secure); + return Redirect::intended($this->uri() . '/' . $path, $status, $headers, $secure); } } diff --git a/modules/cms/ServiceProvider.php b/modules/cms/ServiceProvider.php index 1f02ab57f..3605e5684 100644 --- a/modules/cms/ServiceProvider.php +++ b/modules/cms/ServiceProvider.php @@ -1,5 +1,6 @@ registerComponents(); + $this->registerAssetBundles(); + + // Disabled for now + // if (App::runningInBackend()) { + $this->registerBackendNavigation(); + $this->registerBackendPermissions(); + $this->registerBackendWidgets(); + $this->registerBackendSettings(); + // } + } + + /** + * Bootstrap the module events. + * + * @return void + */ + public function boot() + { + parent::boot('cms'); + + $this->bootMenuItemEvents(); + } + + /** + * Register components + */ + protected function registerComponents() + { + ComponentManager::instance()->registerComponents(function ($manager) { + $manager->registerComponent('Cms\Classes\ViewBag', 'viewBag'); + }); + } + + /** + * Register asset bundles + */ + protected function registerAssetBundles() + { /* - * Register navigation + * Register asset bundles */ + CombineAssets::registerCallback(function($combiner) { + $combiner->registerBundle('~/modules/cms/widgets/mediamanager/assets/js/mediamanager-global.js'); + $combiner->registerBundle('~/modules/cms/widgets/mediamanager/assets/js/mediamanager-browser.js'); + }); + } + + /* + * Register navigation + */ + protected function registerBackendNavigation() + { BackendMenu::registerCallback(function ($manager) { $manager->registerMenuItems('October.Cms', [ 'cms' => [ @@ -94,10 +145,13 @@ class ServiceProvider extends ModuleServiceProvider ] ]); }); + } - /* - * Register permissions - */ + /* + * Register permissions + */ + protected function registerBackendPermissions() + { BackendAuth::registerCallback(function ($manager) { $manager->registerPermissions('October.Cms', [ 'cms.manage_content' => [ @@ -126,17 +180,23 @@ class ServiceProvider extends ModuleServiceProvider ] ]); }); + } - /* - * Register widgets - */ + /* + * Register widgets + */ + protected function registerBackendWidgets() + { WidgetManager::instance()->registerFormWidgets(function ($manager) { $manager->registerFormWidget('Cms\FormWidgets\Components'); }); + } - /* - * Register settings - */ + /* + * Register settings + */ + protected function registerBackendSettings() + { SettingsManager::instance()->registerCallback(function ($manager) { $manager->registerSettingItems('October.Cms', [ 'theme' => [ @@ -159,32 +219,13 @@ class ServiceProvider extends ModuleServiceProvider ], ]); }); - - /* - * Register components - */ - ComponentManager::instance()->registerComponents(function ($manager) { - $manager->registerComponent('Cms\Classes\ViewBag', 'viewBag'); - }); - - /* - * Register asset bundles - */ - CombineAssets::registerCallback(function($combiner) { - $combiner->registerBundle('~/modules/cms/widgets/mediamanager/assets/js/mediamanager-global.js'); - $combiner->registerBundle('~/modules/cms/widgets/mediamanager/assets/js/mediamanager-browser.js'); - }); } /** - * Bootstrap the module events. - * - * @return void + * Registers events for menu items. */ - public function boot() + protected function bootMenuItemEvents() { - parent::boot('cms'); - Event::listen('pages.menuitem.listTypes', function () { return [ 'cms-page' => 'CMS Page' diff --git a/modules/system/ServiceProvider.php b/modules/system/ServiceProvider.php index abdeab811..035b73c8f 100644 --- a/modules/system/ServiceProvider.php +++ b/modules/system/ServiceProvider.php @@ -34,14 +34,61 @@ class ServiceProvider extends ModuleServiceProvider */ public function register() { - /* - * Register self - */ parent::register('system'); + $this->registerSingletons(); + $this->registerPrivilegedActions(); + /* - * Register singletons + * Register all plugins */ + PluginManager::instance()->registerAll(); + + $this->registerConsole(); + $this->registerErrorHandler(); + $this->registerLogging(); + $this->registerTwigParser(); + $this->registerMailer(); + $this->registerMarkupTags(); + + /* + * Register other module providers + */ + foreach (Config::get('cms.loadModules', []) as $module) { + if (strtolower(trim($module)) != 'system') { + App::register('\\' . $module . '\ServiceProvider'); + } + } + + // Disabled for now + // if (App::runningInBackend()) { + $this->registerBackendNavigation(); + $this->registerBackendReportWidgets(); + $this->registerBackendPermissions(); + $this->registerBackendSettings(); + // } + } + + /** + * Bootstrap the module events. + * + * @return void + */ + public function boot() + { + /* + * Boot plugins + */ + $pluginManager = PluginManager::instance()->bootAll(); + + parent::boot('system'); + } + + /** + * Register singletons + */ + protected function registerSingletons() + { App::singleton('backend.helper', function () { return new \Backend\Helpers\Backend; }); @@ -51,148 +98,44 @@ class ServiceProvider extends ModuleServiceProvider App::singleton('backend.auth', function () { return \Backend\Classes\AuthManager::instance(); }); + } - $this->registerPrivilegedActions(); + /** + * Check for CLI or system/updates route and disable any plugin initialization + */ + protected function registerPrivilegedActions() + { + $requests = ['/combine', '@/system/updates', '@/system/install', '@/backend/auth']; + $commands = ['october:up', 'october:update']; /* - * Register all plugins + * Requests */ - $pluginManager = PluginManager::instance(); - $pluginManager->registerAll(); - - /* - * Allow plugins to use the scheduler - */ - Event::listen('console.schedule', function($schedule) use ($pluginManager) { - foreach ($pluginManager->getPlugins() as $plugin) { - if (method_exists($plugin, 'registerSchedule')) { - $plugin->registerSchedule($schedule); - } + $path = RouterHelper::normalizeUrl(Request::path()); + $backendUri = RouterHelper::normalizeUrl(Config::get('cms.backendUri', 'backend')); + foreach ($requests as $request) { + if (substr($request, 0, 1) == '@') { + $request = $backendUri . substr($request, 1); } - }); - /* - * Error handling for uncaught Exceptions - */ - Event::listen('exception.beforeRender', function ($exception, $httpCode, $request){ - $handler = new ErrorHandler; - return $handler->handleException($exception); - }); - - /* - * Write all log events to the database - */ - Event::listen('illuminate.log', function ($level, $message, $context) { - if (DbDongle::hasDatabase() && !defined('OCTOBER_NO_EVENT_LOGGING')) { - EventLog::add($message, $level); + if (stripos($path, $request) === 0) { + PluginManager::$noInit = true; } - }); - - /* - * Register basic Twig - */ - App::singleton('twig', function ($app) { - $twig = new Twig_Environment(new TwigLoader(), ['auto_reload' => true]); - $twig->addExtension(new TwigExtension); - return $twig; - }); - - /* - * Register .htm extension for Twig views - */ - App::make('view')->addExtension('htm', 'twig', function () { - return new TwigEngine(App::make('twig')); - }); - - /* - * Register Twig that will parse strings - */ - App::singleton('twig.string', function ($app) { - $twig = $app['twig']; - $twig->setLoader(new Twig_Loader_String); - return $twig; - }); - - /* - * Override system mailer with mail settings - */ - Event::listen('mailer.beforeRegister', function () { - if (MailSettings::isConfigured()) { - MailSettings::applyConfigValues(); - } - }); - - /* - * Override standard Mailer content with template - */ - Event::listen('mailer.beforeAddContent', function ($mailer, $message, $view, $data) { - if (MailTemplate::addContentToMailer($message, $view, $data)) { - return false; - } - }); - - /* - * Register other module providers - */ - foreach (Config::get('cms.loadModules', []) as $module) { - if (strtolower(trim($module)) == 'system') { - continue; - } - App::register('\\' . $module . '\ServiceProvider'); } /* - * Register navigation + * CLI */ - BackendMenu::registerCallback(function ($manager) { - $manager->registerMenuItems('October.System', [ - 'system' => [ - 'label' => 'system::lang.settings.menu_label', - 'icon' => 'icon-cog', - 'url' => Backend::url('system/settings'), - 'permissions' => [], - 'order' => 1000 - ] - ]); - }); + if (App::runningInConsole() && count(array_intersect($commands, Request::server('argv'))) > 0) { + PluginManager::$noInit = true; + } + } - /* - * Register report widgets - */ - WidgetManager::instance()->registerReportWidgets(function ($manager) { - $manager->registerReportWidget('System\ReportWidgets\Status', [ - 'label' => 'backend::lang.dashboard.status.widget_title_default', - 'context' => 'dashboard' - ]); - }); - - /* - * Register permissions - */ - BackendAuth::registerCallback(function ($manager) { - $manager->registerPermissions('October.System', [ - 'system.manage_updates' => [ - 'label' => 'system::lang.permissions.manage_software_updates', - 'tab' => 'system::lang.permissions.name' - ], - 'system.access_logs' => [ - 'label' => 'system::lang.permissions.access_logs', - 'tab' => 'system::lang.permissions.name' - ], - 'system.manage_mail_settings' => [ - 'label' => 'system::lang.permissions.manage_mail_settings', - 'tab' => 'system::lang.permissions.name' - ], - 'system.manage_mail_templates' => [ - 'label' => 'system::lang.permissions.manage_mail_templates', - 'tab' => 'system::lang.permissions.name' - ] - ]); - }); - - /* - * Register markup tags - */ + /* + * Register markup tags + */ + protected function registerMarkupTags() + { MarkupManager::instance()->registerCallback(function ($manager) { $manager->registerFunctions([ // Functions @@ -232,10 +175,203 @@ class ServiceProvider extends ModuleServiceProvider 'md' => ['Markdown', 'parse'], ]); }); + } + + /** + * Register command line specifics + */ + protected function registerConsole() + { + /* + * Allow plugins to use the scheduler + */ + Event::listen('console.schedule', function($schedule) { + $plugins = PluginManager::instance()->getPlugins(); + foreach ($plugins as $plugin) { + if (method_exists($plugin, 'registerSchedule')) { + $plugin->registerSchedule($schedule); + } + } + }); /* - * Register settings + * Add CMS based cache clearing to native command */ + Event::listen('cache:cleared', function() { + \System\Helpers\Cache::clear(); + }); + + /* + * Register console commands + */ + $this->registerConsoleCommand('october.up', 'System\Console\OctoberUp'); + $this->registerConsoleCommand('october.down', 'System\Console\OctoberDown'); + $this->registerConsoleCommand('october.update', 'System\Console\OctoberUpdate'); + $this->registerConsoleCommand('october.util', 'System\Console\OctoberUtil'); + $this->registerConsoleCommand('october.mirror', 'System\Console\OctoberMirror'); + $this->registerConsoleCommand('october.fresh', 'System\Console\OctoberFresh'); + + $this->registerConsoleCommand('plugin.install', 'System\Console\PluginInstall'); + $this->registerConsoleCommand('plugin.remove', 'System\Console\PluginRemove'); + $this->registerConsoleCommand('plugin.refresh', 'System\Console\PluginRefresh'); + + $this->registerConsoleCommand('theme.install', 'System\Console\ThemeInstall'); + $this->registerConsoleCommand('theme.remove', 'System\Console\ThemeRemove'); + $this->registerConsoleCommand('theme.list', 'System\Console\ThemeList'); + $this->registerConsoleCommand('theme.use', 'System\Console\ThemeUse'); + } + + /* + * Error handling for uncaught Exceptions + */ + protected function registerErrorHandler() + { + Event::listen('exception.beforeRender', function ($exception, $httpCode, $request){ + $handler = new ErrorHandler; + return $handler->handleException($exception); + }); + } + + /* + * Write all log events to the database + */ + protected function registerLogging() + { + Event::listen('illuminate.log', function ($level, $message, $context) { + if (DbDongle::hasDatabase() && !defined('OCTOBER_NO_EVENT_LOGGING')) { + EventLog::add($message, $level); + } + }); + } + + /* + * Register text twig parser + */ + protected function registerTwigParser() + { + /* + * Register basic Twig + */ + App::singleton('twig', function ($app) { + $twig = new Twig_Environment(new TwigLoader(), ['auto_reload' => true]); + $twig->addExtension(new TwigExtension); + return $twig; + }); + + /* + * Register .htm extension for Twig views + */ + App::make('view')->addExtension('htm', 'twig', function () { + return new TwigEngine(App::make('twig')); + }); + + /* + * Register Twig that will parse strings + */ + App::singleton('twig.string', function ($app) { + $twig = $app['twig']; + $twig->setLoader(new Twig_Loader_String); + return $twig; + }); + } + + /** + * Register mail templating and settings override. + */ + protected function registerMailer() + { + /* + * Override system mailer with mail settings + */ + Event::listen('mailer.beforeRegister', function () { + if (MailSettings::isConfigured()) { + MailSettings::applyConfigValues(); + } + }); + + /* + * Override standard Mailer content with template + */ + Event::listen('mailer.beforeAddContent', function ($mailer, $message, $view, $data) { + if (MailTemplate::addContentToMailer($message, $view, $data)) { + return false; + } + }); + } + + /* + * Register navigation + */ + protected function registerBackendNavigation() + { + BackendMenu::registerCallback(function ($manager) { + $manager->registerMenuItems('October.System', [ + 'system' => [ + 'label' => 'system::lang.settings.menu_label', + 'icon' => 'icon-cog', + 'url' => Backend::url('system/settings'), + 'permissions' => [], + 'order' => 1000 + ] + ]); + }); + + /* + * Register the sidebar for the System main menu + */ + BackendMenu::registerContextSidenavPartial( + 'October.System', + 'system', + '~/modules/system/partials/_system_sidebar.htm' + ); + } + + /* + * Register report widgets + */ + protected function registerBackendReportWidgets() + { + WidgetManager::instance()->registerReportWidgets(function ($manager) { + $manager->registerReportWidget('System\ReportWidgets\Status', [ + 'label' => 'backend::lang.dashboard.status.widget_title_default', + 'context' => 'dashboard' + ]); + }); + + } + + /* + * Register permissions + */ + protected function registerBackendPermissions() + { + BackendAuth::registerCallback(function ($manager) { + $manager->registerPermissions('October.System', [ + 'system.manage_updates' => [ + 'label' => 'system::lang.permissions.manage_software_updates', + 'tab' => 'system::lang.permissions.name' + ], + 'system.access_logs' => [ + 'label' => 'system::lang.permissions.access_logs', + 'tab' => 'system::lang.permissions.name' + ], + 'system.manage_mail_settings' => [ + 'label' => 'system::lang.permissions.manage_mail_settings', + 'tab' => 'system::lang.permissions.name' + ], + 'system.manage_mail_templates' => [ + 'label' => 'system::lang.permissions.manage_mail_templates', + 'tab' => 'system::lang.permissions.name' + ] + ]); + }); + } + + /* + * Register settings + */ + protected function registerBackendSettings() + { SettingsManager::instance()->registerCallback(function ($manager) { $manager->registerSettingItems('October.System', [ 'updates' => [ @@ -294,89 +430,5 @@ class ServiceProvider extends ModuleServiceProvider ] ]); }); - - /* - * Add CMS based cache clearing to native command - */ - Event::listen('cache:cleared', function() { - \System\Helpers\Cache::clear(); - }); - - /* - * Register console commands - */ - $this->registerConsoleCommand('october.up', 'System\Console\OctoberUp'); - $this->registerConsoleCommand('october.down', 'System\Console\OctoberDown'); - $this->registerConsoleCommand('october.update', 'System\Console\OctoberUpdate'); - $this->registerConsoleCommand('october.util', 'System\Console\OctoberUtil'); - $this->registerConsoleCommand('october.mirror', 'System\Console\OctoberMirror'); - $this->registerConsoleCommand('october.fresh', 'System\Console\OctoberFresh'); - - $this->registerConsoleCommand('plugin.install', 'System\Console\PluginInstall'); - $this->registerConsoleCommand('plugin.remove', 'System\Console\PluginRemove'); - $this->registerConsoleCommand('plugin.refresh', 'System\Console\PluginRefresh'); - - $this->registerConsoleCommand('theme.install', 'System\Console\ThemeInstall'); - $this->registerConsoleCommand('theme.remove', 'System\Console\ThemeRemove'); - $this->registerConsoleCommand('theme.list', 'System\Console\ThemeList'); - $this->registerConsoleCommand('theme.use', 'System\Console\ThemeUse'); - - /* - * Register the sidebar for the System main menu - */ - BackendMenu::registerContextSidenavPartial( - 'October.System', - 'system', - '~/modules/system/partials/_system_sidebar.htm' - ); } - - /** - * Bootstrap the module events. - * - * @return void - */ - public function boot() - { - /* - * Boot plugins - */ - $pluginManager = PluginManager::instance(); - $pluginManager->bootAll(); - - parent::boot('system'); - } - - /** - * Check for CLI or system/updates route and disable any plugin initialization - */ - protected function registerPrivilegedActions() - { - $requests = ['/combine', '@/system/updates', '@/system/install', '@/backend/auth']; - $commands = ['october:up', 'october:update']; - - /* - * Requests - */ - $path = RouterHelper::normalizeUrl(Request::path()); - $backendUri = RouterHelper::normalizeUrl(Config::get('cms.backendUri')); - foreach ($requests as $request) { - if (substr($request, 0, 1) == '@') { - $request = $backendUri . substr($request, 1); - } - - if (stripos($path, $request) === 0) { - PluginManager::$noInit = true; - } - } - - /* - * CLI - */ - if (App::runningInConsole() && count(array_intersect($commands, Request::server('argv'))) > 0) { - PluginManager::$noInit = true; - } - - } - }