diff --git a/.env.example b/.env.example index 69a303d4..fbf78ea1 100644 --- a/.env.example +++ b/.env.example @@ -1,8 +1,7 @@ -APP_ENV=testing -APP_DEBUG=true -APP_KEY=ZKZAzM23wQ6BPji6zffBjaTzZ3yW7zKQ +APP_ENV= +APP_DEBUG= -DB_HOST=localhost +DB_HOST= DB_DATABASE= DB_USERNAME= DB_PASSWORD= @@ -16,5 +15,4 @@ MAIL_PASSWORD= SITE_URL=/ UPLOAD_URL=/public/uploads -THUMBNAILS_URL=/uploads/thumbnails -THEME= \ No newline at end of file +THUMBNAILS_URL=/uploads/thumbnails \ No newline at end of file diff --git a/app/Console/Commands/SetTemplate.php b/app/Console/Commands/SetTemplate.php new file mode 100644 index 00000000..81819059 --- /dev/null +++ b/app/Console/Commands/SetTemplate.php @@ -0,0 +1,71 @@ +argument('template'); + + $templatePath = app_path('../templates/' . $template); + if (!is_dir($templatePath) || !file_exists($templatePath . '/config.php')) { + throw new NotFoundHttpException('Invalid template ' . $template . '!'); + } + + // try to find currently installed template + $current = Module::where('is_template', true)->first(); + + if ($current) { + $this->line('Template is already set up. Currently using '.trans($current->name).'.'); + $confirm = $this->ask('Uninstall it and install '.$template.'? [y/n]'); + + if ($confirm === 'y') { + $this->line('Uninstalling '.$current->name.'.'); + $current->uninstall(); + } else { + $this->line('Aborting installation.'); + return; + } + } + + // install template + $config = @include $templatePath . '/config.php'; + + try { + $config['staticName'] = $template; + Module::install($config['name'], $config['alias'], $config['description'], $config['handler'], false, $config); + } catch (\Exception $e) { + $this->error('Cannot install template '.$template.'.'); + return; + } + + // theme written + $this->line('Template successfully setup.'); +// $this->line(''); +// $this->line(' ** PUBLISHING ASSETS AND VIEWS **'); +// // publish assets and views for module and theme +// $this->call('vendor:publish', ['--tag' => ['public-assets'], '--force' => true]); +// $this->call('vendor:publish', ['--tag' => ['module-views'], '--force' => true]); +// $this->call('vendor:publish'); + } +} diff --git a/app/Console/Commands/SetTheme.php b/app/Console/Commands/SetTheme.php deleted file mode 100644 index dd788a79..00000000 --- a/app/Console/Commands/SetTheme.php +++ /dev/null @@ -1,70 +0,0 @@ -argument('theme_name'); - - if (!is_dir(resource_path('views/visitor/' . $theme))) { - throw new NotFoundHttpException('Invalid theme ' . $theme . '!'); - } - - // load .env file - $envFile = base_path('.env'); - $env = file_get_contents($envFile); - - if (!Str::contains($env, 'THEME=')) { - $env = sprintf("%s\nTHEME=%s\n", $env, $theme); - } else { - $env = preg_replace('/THEME=(.*)/i', 'THEME=' . $theme, $env, -1, $cnt); - } - - // try to write content - $bytesWritten = file_put_contents($envFile, $env); - - // check if write was successfull - if (!$bytesWritten) { - throw new \Exception('Cannot write to ' . base_path('.env') . '. Add THEME=' . $theme . ' to your .env file manualy.'); - } - - // theme written - $this->line('Theme successfully setup.'); - $this->line(''); - $this->line(' ** PUBLISHING ASSETS AND VIEWS **'); - // publish assets and views for module and theme - $this->call('vendor:publish', ['--tag' => ['public-assets'], '--force' => true]); - $this->call('vendor:publish', ['--tag' => ['module-views'], '--force' => true]); - $this->call('vendor:publish'); - } -} diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index 395f776d..962299bc 100644 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -21,7 +21,7 @@ class Kernel extends ConsoleKernel Commands\Translations::class, Commands\TranslateAll::class, Commands\InitDatabaseSchema::class, - Commands\SetTheme::class, + Commands\SetTemplate::class, AddLanguage::class ]; diff --git a/app/Handlers/Contracts/BaseModuleHandler.php b/app/Handlers/Contracts/BaseModuleHandler.php index c66e8a4e..dab8a282 100644 --- a/app/Handlers/Contracts/BaseModuleHandler.php +++ b/app/Handlers/Contracts/BaseModuleHandler.php @@ -5,7 +5,7 @@ use App\Models\User; interface BaseModuleHandler { - public static function getModuleId(); +// public static function getModuleId(); /** * Register admin menu (or multiple ones) diff --git a/app/Handlers/Contracts/TemplateHandler.php b/app/Handlers/Contracts/TemplateHandler.php new file mode 100644 index 00000000..6864639b --- /dev/null +++ b/app/Handlers/Contracts/TemplateHandler.php @@ -0,0 +1,11 @@ + $templateName, 'name' => $templateName, @@ -197,8 +196,6 @@ class TemplateRegistrator 'editable' => 1 ]; - echo 'ukladam do db '.$templateName."\n"; - // save template into database $newTemplate = Template::create($params); diff --git a/app/Models/Module.php b/app/Models/Module.php index d782c2d9..b3e877f7 100644 --- a/app/Models/Module.php +++ b/app/Models/Module.php @@ -2,6 +2,7 @@ namespace App\Models; +use App\Handlers\Contracts\TemplateHandler; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Facades\App; @@ -20,7 +21,8 @@ class Module extends Model 'module_settings', 'enabled', 'support_categories', - 'manages_content' + 'manages_content', + 'is_template' ]; protected $guarded = []; @@ -45,6 +47,7 @@ class Module extends Model } $managesContent = $handler ? in_array('App\Handlers\Contracts\AppHandler', class_implements($handler)) : false; + $isTemplate = $handler ? in_array(TemplateHandler::class, class_implements($handler)) : false; $supportCategories = $managesContent ? call_user_func([$handler, 'supportCategories']) : false; if ($parentModuleId) { @@ -62,8 +65,9 @@ class Module extends Model 'support_categories' => $supportCategories, 'alias' => $alias, 'module_settings' => json_encode($settings), - 'parent_id' => $parentModuleId, - 'enabled' => 1 + 'parent_id' => $parentModuleId ? $parentModuleId : null, + 'enabled' => 1, + 'is_template' => $isTemplate ]); // install something module-specific @@ -73,4 +77,31 @@ class Module extends Model return $module; } + + public function uninstall() { + // check if user does not want to install module in runtime + if (!App::runningInConsole()) { + throw new \ErrorException('Modules can be uninstalled only via Artisan!'); + } + + // delete everything in /resources/views/visitor + $directories = \File::directories(resource_path('views/visitor')); + + foreach ($directories as $directory) { + $success = \File::deleteDirectory($directory); + + if (!$success) { + throw new \ErrorException('Cannot delete '.$directory); + } + } + + + $handler = $this->handler; + + if ($handler) { + call_user_func([$handler, 'uninstall'], $this); + } + + $this->delete(); + } } \ No newline at end of file diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index fe7104a6..9f8ab168 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -39,13 +39,6 @@ class AppServiceProvider extends ServiceProvider $this->registerTemplates(); $this->registerSettings(); $this->registerSearch(); - - // check if given template is valid - $theme = config('app.theme'); - $themeDir = resource_path('views/visitor/' . $theme); - if (!$theme || empty($theme) || !is_dir($themeDir)) { - throw new InvalidArgumentException('No or invalid theme set! Use artisan theme:set or edit .env file manually and include THEME option, please'); - } } /** @@ -120,10 +113,10 @@ class AppServiceProvider extends ServiceProvider /** * @var $registrator TemplateRegistrator */ - $registrator = $this->app->make('registerTemplateDir'); - $registrator->setBaseDirectory('resources/views/visitor'); +// $registrator = $this->app->make('registerTemplateDir'); +// $registrator->setBaseDirectory('resources/views/visitor'); - $registrator->register(config('app.theme'), 'admin/templates.core'); +// $registrator->register(config('app.theme'), 'admin/templates.core'); } /** diff --git a/app/Providers/LaravelLocalizationServiceProvider.php b/app/Providers/LaravelLocalizationServiceProvider.php index 30b153dc..94f761fc 100644 --- a/app/Providers/LaravelLocalizationServiceProvider.php +++ b/app/Providers/LaravelLocalizationServiceProvider.php @@ -5,18 +5,13 @@ use Illuminate\Support\Facades\App; use Illuminate\Support\Facades\DB; use Illuminate\Support\ServiceProvider; use Mcamara\LaravelLocalization\Facades\LaravelLocalization; -use Symfony\Component\Translation\Translator; class LaravelLocalizationServiceProvider extends ServiceProvider { public function register() { - try { - $languages = DB::table('languages') - ->get(); - } catch (\Exception $e) { - $languages = []; - } + $languages = DB::table('languages') + ->get(); $supportedLocales = []; if (empty($languages)) { @@ -28,11 +23,7 @@ class LaravelLocalizationServiceProvider extends ServiceProvider ]; // create default language - try { - Language::create($supportedLocales[config('app.locale')]); - } catch (\Exception $e) { - // ignore, table languages probably does not exist. - } + Language::create($supportedLocales[config('app.locale')]); } foreach ($languages as $language) { diff --git a/app/Providers/ModuleManager.php b/app/Providers/ModuleManager.php index dff7e0be..89704c2d 100644 --- a/app/Providers/ModuleManager.php +++ b/app/Providers/ModuleManager.php @@ -21,7 +21,8 @@ class ModuleManager extends ServiceProvider } // this service provider needs published config - config is merged right after this service provider - $modules = Module::get(); + $modules = Module::where('is_template', false) + ->get(); // iterate over all modules and enable or disable them foreach ($modules as $module) { @@ -58,7 +59,7 @@ class ModuleManager extends ServiceProvider // check if module config is writable if (!is_writable(dirname($path))) { - Log::warning('Cannot write to '.$path); + Log::warning('Cannot write to ' . $path); return; } diff --git a/app/Providers/TemplateServiceProvider.php b/app/Providers/TemplateServiceProvider.php new file mode 100644 index 00000000..4c415803 --- /dev/null +++ b/app/Providers/TemplateServiceProvider.php @@ -0,0 +1,75 @@ +first(); + + if (!$template) { + throw new \ErrorException('Template is not set, cannot continue'); + } + + $templateSettings = json_decode($template->module_settings); + + // include files + $files = isset($templateSettings->files) ? $templateSettings->files : []; + + foreach ($files as $file) { + include_once app_path('../templates/' . $templateSettings->staticName . '/' . $file); + } + + // register templates + $publicTemplates = call_user_func([$template->handler, 'getPublicTemplatePaths']); + + if (!is_array($publicTemplates)) { + throw new \ErrorException($template->handler . '::getPublicTemplatePaths() must return array!'); + } + + if (empty($publicTemplates)) { + return; + } + + /** + * @var $registrator TemplateRegistrator + */ + $registrator = $this->app->make('registerTemplateDir'); + foreach ($publicTemplates as $template) { + // setup some global variables +// try { +// $registrator->setBaseDirectory('resources/views/modules/gallery/visitor'); +// $registrator->setNamespace('gallery'); +// $registrator->setModuleId(call_user_func([config('gallery.handler'), 'getModuleId'])); +// +// // register path with current template name +// $registrator->register(config('app.theme'), 'gallery::admin/adminMenu.templatePath'); +// } catch (InvalidArgumentException $e) { +// // ignore this exception +// } + } + } + + /** + * Register the service provider. + * + * @return void + */ + public function register() + { + } +} \ No newline at end of file diff --git a/composer.json b/composer.json index 69031af8..0a3fba00 100644 --- a/composer.json +++ b/composer.json @@ -30,7 +30,8 @@ ], "psr-4": { "App\\": "app/", - "Modules\\": "modules/" + "Modules\\": "modules/", + "Templates\\": "templates/" } }, "scripts": { diff --git a/config/app.php b/config/app.php index dd7ce301..7986d06f 100644 --- a/config/app.php +++ b/config/app.php @@ -129,49 +129,50 @@ return [ 'providers' => [ - /* - * Laravel Framework Service Providers... - */ - Illuminate\Auth\AuthServiceProvider::class, - Illuminate\Broadcasting\BroadcastServiceProvider::class, - Illuminate\Bus\BusServiceProvider::class, - Illuminate\Cache\CacheServiceProvider::class, - Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class, - Illuminate\Cookie\CookieServiceProvider::class, - Illuminate\Database\DatabaseServiceProvider::class, - Illuminate\Encryption\EncryptionServiceProvider::class, - Illuminate\Filesystem\FilesystemServiceProvider::class, - Illuminate\Foundation\Providers\FoundationServiceProvider::class, - Illuminate\Hashing\HashServiceProvider::class, - Illuminate\Mail\MailServiceProvider::class, - Illuminate\Pagination\PaginationServiceProvider::class, - Illuminate\Pipeline\PipelineServiceProvider::class, - Illuminate\Queue\QueueServiceProvider::class, - Illuminate\Redis\RedisServiceProvider::class, - Illuminate\Auth\Passwords\PasswordResetServiceProvider::class, - Illuminate\Session\SessionServiceProvider::class, - Illuminate\Translation\TranslationServiceProvider::class, - Illuminate\Validation\ValidationServiceProvider::class, - Illuminate\View\ViewServiceProvider::class, - Mcamara\LaravelLocalization\LaravelLocalizationServiceProvider::class, - // this class must be before ModulesServiceProvider from PingPong, because it handles files module.json - App\Providers\ModuleManager::class, - Pingpong\Modules\ModulesServiceProvider::class, - Pingpong\Menus\MenusServiceProvider::class, - App\Providers\SubmodulesManager::class, + /* + * Laravel Framework Service Providers... + */ + Illuminate\Auth\AuthServiceProvider::class, + Illuminate\Broadcasting\BroadcastServiceProvider::class, + Illuminate\Bus\BusServiceProvider::class, + Illuminate\Cache\CacheServiceProvider::class, + Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class, + Illuminate\Cookie\CookieServiceProvider::class, + Illuminate\Database\DatabaseServiceProvider::class, + Illuminate\Encryption\EncryptionServiceProvider::class, + Illuminate\Filesystem\FilesystemServiceProvider::class, + Illuminate\Foundation\Providers\FoundationServiceProvider::class, + Illuminate\Hashing\HashServiceProvider::class, + Illuminate\Mail\MailServiceProvider::class, + Illuminate\Pagination\PaginationServiceProvider::class, + Illuminate\Pipeline\PipelineServiceProvider::class, + Illuminate\Queue\QueueServiceProvider::class, + Illuminate\Redis\RedisServiceProvider::class, + Illuminate\Auth\Passwords\PasswordResetServiceProvider::class, + Illuminate\Session\SessionServiceProvider::class, + Illuminate\Translation\TranslationServiceProvider::class, + Illuminate\Validation\ValidationServiceProvider::class, + Illuminate\View\ViewServiceProvider::class, + Mcamara\LaravelLocalization\LaravelLocalizationServiceProvider::class, + // this class must be before ModulesServiceProvider from PingPong, because it handles files module.json + App\Providers\ModuleManager::class, + Pingpong\Modules\ModulesServiceProvider::class, + Pingpong\Menus\MenusServiceProvider::class, + App\Providers\SubmodulesManager::class, + \App\Providers\TemplateServiceProvider::class, - Franzose\ClosureTable\ClosureTableServiceProvider::class, - \Watson\Sitemap\SitemapServiceProvider::class, - /* - * Application Service Providers... - */ - App\Providers\AppServiceProvider::class, - App\Providers\AuthServiceProvider::class, - App\Providers\EventServiceProvider::class, - App\Providers\RouteServiceProvider::class, - App\Providers\GlobalViewDataProvider::class, + Franzose\ClosureTable\ClosureTableServiceProvider::class, + \Watson\Sitemap\SitemapServiceProvider::class, + /* + * Application Service Providers... + */ + App\Providers\AppServiceProvider::class, + App\Providers\AuthServiceProvider::class, + App\Providers\EventServiceProvider::class, + App\Providers\RouteServiceProvider::class, + App\Providers\GlobalViewDataProvider::class, -], + ], /* |-------------------------------------------------------------------------- | Class Aliases @@ -185,41 +186,41 @@ return [ 'aliases' => [ - 'App' => Illuminate\Support\Facades\App::class, - 'Artisan' => Illuminate\Support\Facades\Artisan::class, - 'Auth' => Illuminate\Support\Facades\Auth::class, - 'Blade' => Illuminate\Support\Facades\Blade::class, - 'Cache' => Illuminate\Support\Facades\Cache::class, - 'Config' => Illuminate\Support\Facades\Config::class, - 'Cookie' => Illuminate\Support\Facades\Cookie::class, - 'Crypt' => Illuminate\Support\Facades\Crypt::class, - 'DB' => Illuminate\Support\Facades\DB::class, - 'Eloquent' => Illuminate\Database\Eloquent\Model::class, - 'Event' => Illuminate\Support\Facades\Event::class, - 'File' => Illuminate\Support\Facades\File::class, - 'Gate' => Illuminate\Support\Facades\Gate::class, - 'Hash' => Illuminate\Support\Facades\Hash::class, - 'Lang' => Illuminate\Support\Facades\Lang::class, - 'Log' => Illuminate\Support\Facades\Log::class, - 'Mail' => Illuminate\Support\Facades\Mail::class, - 'Menu' => Pingpong\Menus\MenuFacade::class, - 'Module' => Pingpong\Modules\Facades\Module::class, - 'Password' => Illuminate\Support\Facades\Password::class, - 'Queue' => Illuminate\Support\Facades\Queue::class, - 'Redirect' => Illuminate\Support\Facades\Redirect::class, - 'Redis' => Illuminate\Support\Facades\Redis::class, - 'Request' => Illuminate\Support\Facades\Request::class, - 'Response' => Illuminate\Support\Facades\Response::class, - 'Route' => Illuminate\Support\Facades\Route::class, - 'Schema' => Illuminate\Support\Facades\Schema::class, - 'Session' => Illuminate\Support\Facades\Session::class, - 'Sitemap' => Watson\Sitemap\Facades\Sitemap::class, - 'Storage' => Illuminate\Support\Facades\Storage::class, - 'URL' => Illuminate\Support\Facades\URL::class, - 'Validator' => Illuminate\Support\Facades\Validator::class, - 'LaravelLocalization' => Mcamara\LaravelLocalization\Facades\LaravelLocalization::class, - 'View' => Illuminate\Support\Facades\View::class, + 'App' => Illuminate\Support\Facades\App::class, + 'Artisan' => Illuminate\Support\Facades\Artisan::class, + 'Auth' => Illuminate\Support\Facades\Auth::class, + 'Blade' => Illuminate\Support\Facades\Blade::class, + 'Cache' => Illuminate\Support\Facades\Cache::class, + 'Config' => Illuminate\Support\Facades\Config::class, + 'Cookie' => Illuminate\Support\Facades\Cookie::class, + 'Crypt' => Illuminate\Support\Facades\Crypt::class, + 'DB' => Illuminate\Support\Facades\DB::class, + 'Eloquent' => Illuminate\Database\Eloquent\Model::class, + 'Event' => Illuminate\Support\Facades\Event::class, + 'File' => Illuminate\Support\Facades\File::class, + 'Gate' => Illuminate\Support\Facades\Gate::class, + 'Hash' => Illuminate\Support\Facades\Hash::class, + 'Lang' => Illuminate\Support\Facades\Lang::class, + 'Log' => Illuminate\Support\Facades\Log::class, + 'Mail' => Illuminate\Support\Facades\Mail::class, + 'Menu' => Pingpong\Menus\MenuFacade::class, + 'Module' => Pingpong\Modules\Facades\Module::class, + 'Password' => Illuminate\Support\Facades\Password::class, + 'Queue' => Illuminate\Support\Facades\Queue::class, + 'Redirect' => Illuminate\Support\Facades\Redirect::class, + 'Redis' => Illuminate\Support\Facades\Redis::class, + 'Request' => Illuminate\Support\Facades\Request::class, + 'Response' => Illuminate\Support\Facades\Response::class, + 'Route' => Illuminate\Support\Facades\Route::class, + 'Schema' => Illuminate\Support\Facades\Schema::class, + 'Session' => Illuminate\Support\Facades\Session::class, + 'Sitemap' => Watson\Sitemap\Facades\Sitemap::class, + 'Storage' => Illuminate\Support\Facades\Storage::class, + 'URL' => Illuminate\Support\Facades\URL::class, + 'Validator' => Illuminate\Support\Facades\Validator::class, + 'LaravelLocalization' => Mcamara\LaravelLocalization\Facades\LaravelLocalization::class, + 'View' => Illuminate\Support\Facades\View::class, -], + ], ]; diff --git a/database/migrations/2016_09_19_192132_SaveTemplatesIntoModulesTable.php b/database/migrations/2016_09_19_192132_SaveTemplatesIntoModulesTable.php new file mode 100644 index 00000000..2b5b484b --- /dev/null +++ b/database/migrations/2016_09_19_192132_SaveTemplatesIntoModulesTable.php @@ -0,0 +1,32 @@ +boolean('is_template')->default(false)->comment('Templates can be treated as modules.'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('modules', function (Blueprint $table){ + $table->dropColumn('is_template'); + }); + } +} diff --git a/modules/Blog/Article/Providers/ArticleServiceProvider.php b/modules/Blog/Article/Providers/ArticleServiceProvider.php index 0d52f03c..da51907f 100644 --- a/modules/Blog/Article/Providers/ArticleServiceProvider.php +++ b/modules/Blog/Article/Providers/ArticleServiceProvider.php @@ -63,21 +63,21 @@ class ArticleServiceProvider extends ServiceProvider { return $path . '/modules/article'; }, \Config::get('view.paths')), [$sourcePath]), 'article'); - /** - * @var $registrator TemplateRegistrator - */ - try { - // setup some global variables - $registrator = $this->app->make('registerTemplateDir'); - $registrator->setBaseDirectory('resources/views/modules/article/visitor'); - $registrator->setNamespace('article'); - $registrator->setModuleId(Article::getModuleId()); - - // register path with current template name - $registrator->register(config('app.theme'), 'article::admin/adminMenu.templatePath'); - } catch (InvalidArgumentException $e) { - // ignore this exception - } +// /** +// * @var $registrator TemplateRegistrator +// */ +// try { +// // setup some global variables +// $registrator = $this->app->make('registerTemplateDir'); +// $registrator->setBaseDirectory('resources/views/modules/article/visitor'); +// $registrator->setNamespace('article'); +// $registrator->setModuleId(Article::getModuleId()); +// +// // register path with current template name +// $registrator->register(config('app.theme'), 'article::admin/adminMenu.templatePath'); +// } catch (InvalidArgumentException $e) { +// // ignore this exception +// } } /** diff --git a/modules/ContactForm/Providers/ContactFormServiceProvider.php b/modules/ContactForm/Providers/ContactFormServiceProvider.php index 1cc4d31c..5852a771 100644 --- a/modules/ContactForm/Providers/ContactFormServiceProvider.php +++ b/modules/ContactForm/Providers/ContactFormServiceProvider.php @@ -63,21 +63,21 @@ class ContactFormServiceProvider extends ServiceProvider return $path . '/modules/contactform'; }, \Config::get('view.paths')), [$sourcePath]), 'contactform'); - /** - * @var $registrator TemplateRegistrator - */ - $registrator = $this->app->make('registerTemplateDir'); - try { - // setup some global variables - $registrator->setBaseDirectory('resources/views/modules/contactform/visitor'); - $registrator->setNamespace('contactform'); - $registrator->setModuleId(call_user_func([config('contactform.handler'), 'getModuleId'])); - - // register path with current template name - $registrator->register(config('app.theme'), 'contactform::admin/adminMenu.templatePath'); - } catch (InvalidArgumentException $e) { - // ignore this exception - } +// /** +// * @var $registrator TemplateRegistrator +// */ +// $registrator = $this->app->make('registerTemplateDir'); +// try { +// // setup some global variables +// $registrator->setBaseDirectory('resources/views/modules/contactform/visitor'); +// $registrator->setNamespace('contactform'); +// $registrator->setModuleId(call_user_func([config('contactform.handler'), 'getModuleId'])); +// +// // register path with current template name +// $registrator->register(config('app.theme'), 'contactform::admin/adminMenu.templatePath'); +// } catch (InvalidArgumentException $e) { +// // ignore this exception +// } } /** diff --git a/modules/Gallery/Providers/GalleryServiceProvider.php b/modules/Gallery/Providers/GalleryServiceProvider.php index 82061245..93d2792e 100644 --- a/modules/Gallery/Providers/GalleryServiceProvider.php +++ b/modules/Gallery/Providers/GalleryServiceProvider.php @@ -63,21 +63,21 @@ class GalleryServiceProvider extends ServiceProvider return $path.'/modules/gallery'; }, \Config::get('view.paths')), [$sourcePath]), 'gallery'); - /** - * @var $registrator TemplateRegistrator - */ - $registrator = $this->app->make('registerTemplateDir'); - try { - // setup some global variables - $registrator->setBaseDirectory('resources/views/modules/gallery/visitor'); - $registrator->setNamespace('gallery'); - $registrator->setModuleId(call_user_func([config('gallery.handler'), 'getModuleId'])); - - // register path with current template name - $registrator->register(config('app.theme'), 'gallery::admin/adminMenu.templatePath'); - } catch (InvalidArgumentException $e) { - // ignore this exception - } +// /** +// * @var $registrator TemplateRegistrator +// */ +// $registrator = $this->app->make('registerTemplateDir'); +// try { +// // setup some global variables +// $registrator->setBaseDirectory('resources/views/modules/gallery/visitor'); +// $registrator->setNamespace('gallery'); +// $registrator->setModuleId(call_user_func([config('gallery.handler'), 'getModuleId'])); +// +// // register path with current template name +// $registrator->register(config('app.theme'), 'gallery::admin/adminMenu.templatePath'); +// } catch (InvalidArgumentException $e) { +// // ignore this exception +// } } /** diff --git a/modules/StaticPages/Providers/StaticPagesServiceProvider.php b/modules/StaticPages/Providers/StaticPagesServiceProvider.php index 779b2a97..08873398 100644 --- a/modules/StaticPages/Providers/StaticPagesServiceProvider.php +++ b/modules/StaticPages/Providers/StaticPagesServiceProvider.php @@ -38,18 +38,6 @@ class StaticPagesServiceProvider extends ServiceProvider { } -// /** -// * Method for installing module into database -// */ -// protected function install() -// { -// $handler = config('staticpages.handler'); -// $installedModules = ModulesHandlerToId::getWithTranslations(); -// if (!isset($installedModules[$handler])) { -// Module::install('staticpages::module.name', 'staticpages', 'staticpages::module.description'); -// } -// } - /** * Register config. * @@ -82,17 +70,17 @@ class StaticPagesServiceProvider extends ServiceProvider * @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 - } +// 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 +// } } /** diff --git a/templates/Base/OnePage/Handlers/OnePage.php b/templates/Base/OnePage/Handlers/OnePage.php new file mode 100644 index 00000000..f23b5555 --- /dev/null +++ b/templates/Base/OnePage/Handlers/OnePage.php @@ -0,0 +1,8 @@ + \Templates\Base\OnePage\Handlers\OnePage::class, + 'name' => 'Sablona', + 'alias' => 'sablona', + 'description' => 'Sablona jednostrankova', + 'files' => [ + 'routes.php' + ] +]; diff --git a/templates/Base/OnePage/routes.php b/templates/Base/OnePage/routes.php new file mode 100644 index 00000000..f38005e4 --- /dev/null +++ b/templates/Base/OnePage/routes.php @@ -0,0 +1,6 @@ + 'web', 'prefix' => 'test', 'namespace' => 'Modules\Blog\Comments\Http\Controllers'], function() +{ + Route::get('/neco-neco', 'CommentsController@index')->name('template.route'); +}); \ No newline at end of file