registerTranslations(); $this->registerConfig(); $this->registerViews(); $this->install(); } /** * Register the service provider. * * @return void */ public function register() { // register event provider for firing module-specific events $this->app->register('Modules\StaticPages\Providers\EventServiceProvider'); } /** * Method for installing module into database */ protected function install() { $handler = config('staticpages.handler'); $installedModules = ModulesHandlerToId::getWithTranslations(); if (!isset($installedModules[$handler])) { // insert module into database Module::create([ 'handler' => $handler, 'name' => 'staticpages::module.name', 'description' => 'staticpages::module.description', 'alias' => 'staticpages' ]); // insert action log types into database // ActionLogType::create([ // 'string_id' => 'staticpages::createNew', // 'name' => 'staticpages::log.nameCreateNew', // 'value' => 'staticpages::log.nameCreateNew' // ]); // ActionLogType::create([ // 'string_id' => 'staticpages::edit', // 'name' => 'staticpages::log.nameEdit', // 'value' => 'staticpages::log.edit' // ]); // ActionLogType::create([ // 'string_id' => 'staticpages::delete', // 'name' => 'staticpages::log.nameDelete', // 'value' => 'staticpages::log.delete' // ]); // ActionLogType::create([ // 'string_id' => 'staticpages::makeDraft', // 'name' => 'staticpages::log.nameMakeDraft', // 'value' => 'staticpages::log.makeDraft' // ]); // // ActionLogType::create([ // 'string_id' => 'staticpages::publish', // 'name' => 'staticpages::log.namePublish', // 'value' => 'staticpages::log.publish' // ]); } } /** * Register config. * * @return void */ protected function registerConfig() { $config = __DIR__ . '/../Config/config.php'; $this->publishes([$config => config_path('staticpages.php')]); $this->mergeConfigFrom($config, 'staticpages'); } /** * Register views. * * @return void */ public function registerViews() { $viewPath = base_path('resources/views/modules/staticpages'); $sourcePath = __DIR__ . '/../Resources/views'; $this->publishes([$sourcePath => $viewPath]); $this->loadViewsFrom(array_merge(array_map(function ($path) { return $path . '/modules/staticpages'; }, \Config::get('view.paths')), [$sourcePath]), 'staticpages'); /** * @var $registrator TemplateRegistrator */ $registrator = $this->app->make('registerTemplateDir'); try { // setup some global variables $registrator->setBaseDirectory('resources/views/modules/staticpages/visitor'); $registrator->setNamespace('staticpages'); $registrator->setModuleId(call_user_func([config('staticpages.handler'), 'getModuleId'])); // register path with current template name $registrator->register(config('app.theme'), 'staticpages::admin.templatePath'); } catch (InvalidArgumentException $e) { // ignore this exception } } /** * Register translations. * * @return void */ public function registerTranslations() { $this->loadTranslationsFrom(__DIR__ . '/../Resources/lang', 'staticpages'); } }