diff --git a/modules/Blog/Article/Handlers/Article.php b/modules/Blog/Article/Handlers/Article.php index fefc218d..2b58be8d 100644 --- a/modules/Blog/Article/Handlers/Article.php +++ b/modules/Blog/Article/Handlers/Article.php @@ -103,14 +103,20 @@ class Article extends Handler $menu = \Menu::instance('mainMenu'); - $menu->dropdown(trans('article::module.name'), function ($sub) { + $blogSubmenu = $menu->whereTitle(trans('article::module.blog')); + if (!$blogSubmenu) { + $blogSubmenu = $menu->dropdown(trans('article::module.blog'), function ($sub) { + }, 20, ['icon' => 'fa fa-fw fa-book']); + } + + $blogSubmenu->dropdown(trans('article::module.name'), function ($sub) { $sub->route('content.new', trans('article::article.new'), ['id' => self::getModuleId()], 10, ['icon' => 'fa fa-fw fa-pencil']); $sub->route('content.overview', trans('article::article.overview'), ['id' => self::getModuleId()], 30, ['icon' => 'fa fa-fw fa-book']); }, 10, ['icon' => 'fa fa-fw fa-book']); - $menu->dropdown(trans('article::module.comments'), function ($sub) { + $blogSubmenu->dropdown(trans('article::module.comments'), function ($sub) { $sub->route('comments.overview', trans('article::module.commentsOverview'), [], 10, ['icon' => 'fa fa-fw fa-commenting-o']); - }, 10, ['icon' => 'fa fa-fw fa-comments-o']); + }, 20, ['icon' => 'fa fa-fw fa-comments-o']); } public static function getModuleId() diff --git a/modules/Blog/Article/Resources/lang/cs/comments.php b/modules/Blog/Article/Resources/lang/cs/comments.php new file mode 100644 index 00000000..12062efe --- /dev/null +++ b/modules/Blog/Article/Resources/lang/cs/comments.php @@ -0,0 +1,8 @@ + "Schválit komentář a zobrazovat ho u článku", +"approved" => "Komentář úspěšně schválen", +"commentedArticle" => "Komentovaný článek", +"createdAt" => "Vloženo :date", +"deleted" => "Komentář smazán", +]; diff --git a/modules/Blog/Article/Resources/lang/cs/module.php b/modules/Blog/Article/Resources/lang/cs/module.php index 414153d7..eceb1960 100644 --- a/modules/Blog/Article/Resources/lang/cs/module.php +++ b/modules/Blog/Article/Resources/lang/cs/module.php @@ -1,8 +1,9 @@ "Všechny články", +"blog" => "Blog", "comments" => "Komentáře", "commentsOverview" => "Všechny komentáře", "description" => "Základní submodul pro blog. Tento modul umožňuje psát články.", -"name" => "Článek", +"name" => "Články", ]; diff --git a/modules/Blog/Article/Resources/lang/en/module.php b/modules/Blog/Article/Resources/lang/en/module.php index ae2ce98b..bf8644c0 100644 --- a/modules/Blog/Article/Resources/lang/en/module.php +++ b/modules/Blog/Article/Resources/lang/en/module.php @@ -1,8 +1,9 @@ 'Article', + 'name' => 'Articles', 'description' => 'Base submodule for blog', 'comments' => 'Comments', 'commentsOverview' => 'All comments', - 'allArticles' => 'All articles' + 'allArticles' => 'All articles', + 'blog' => 'Blog' ]; \ No newline at end of file diff --git a/modules/Blog/ArticleList/Assets/.gitkeep b/modules/Blog/ArticleList/Assets/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/modules/Blog/ArticleList/Config/.gitkeep b/modules/Blog/ArticleList/Config/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/modules/Blog/ArticleList/Config/config.php b/modules/Blog/ArticleList/Config/config.php index 54ad385e..89dcd425 100644 --- a/modules/Blog/ArticleList/Config/config.php +++ b/modules/Blog/ArticleList/Config/config.php @@ -1,5 +1,12 @@ 'ArticleList' + 'name' => 'Article list', + 'translatedName' => 'articlelist::module.name', + 'translatedDescription' => 'articlelist::module.description', + 'alias' => 'blog-articlelist', + 'handler' => \Modules\Blog\ArticleList\Handlers\ArticleList::class, + 'providers' => [\Modules\Blog\ArticleList\Providers\ArticleListServiceProvider::class], + 'files' => ['start.php'], + 'order' => 0, ]; \ No newline at end of file diff --git a/modules/Blog/ArticleList/Console/.gitkeep b/modules/Blog/ArticleList/Console/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/modules/Blog/ArticleList/Database/Migrations/.gitkeep b/modules/Blog/ArticleList/Database/Migrations/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/modules/Blog/ArticleList/Database/Seeders/.gitkeep b/modules/Blog/ArticleList/Database/Seeders/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/modules/Blog/ArticleList/Database/Seeders/ArticleListDatabaseSeeder.php b/modules/Blog/ArticleList/Database/Seeders/ArticleListDatabaseSeeder.php deleted file mode 100644 index 5daa172d..00000000 --- a/modules/Blog/ArticleList/Database/Seeders/ArticleListDatabaseSeeder.php +++ /dev/null @@ -1,20 +0,0 @@ -call("OthersTableSeeder"); - } - -} \ No newline at end of file diff --git a/modules/Blog/ArticleList/Entities/.gitkeep b/modules/Blog/ArticleList/Entities/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/modules/Blog/ArticleList/Handlers/ArticleList.php b/modules/Blog/ArticleList/Handlers/ArticleList.php new file mode 100644 index 00000000..0d67a508 --- /dev/null +++ b/modules/Blog/ArticleList/Handlers/ArticleList.php @@ -0,0 +1,105 @@ +whereTitle(trans('article::module.blog')); + if (!$blogSubmenu) { + $blogSubmenu = $menu->dropdown(trans('article::module.blog'), function ($sub) { + }, 20, ['icon' => 'fa fa-fw fa-book']); + } + + $blogSubmenu->route('content.new', trans('articlelist::module.name'), ['id' => self::getModuleId()], 100, ['icon' => 'fa fa-fw fa-list-alt']); + } + + /** + * Render given module into visitor area. + * + * @param Content $content DB model from table contents + * @param array $parameters parameters used for modifications/custom settings of given model + * + * @return mixed + */ + public function render(Content $content, $parameters) + { + $articles = Content::where('module_handler', Article::class); + + if (!Auth::user()) { + $articles = $articles->where('status', Content::STATUS_PUBLIC); + } else { + $articles = $articles->whereIn('status', [Content::STATUS_PUBLIC, Content::STATUS_PROTECTED]); + } + + $articles = $articles->orderBy('created_at') + ->paginate(20); + + return Controller::VisitorsView($content->template, ['page' => $content, 'articles' => $articles]); + } + + public static function getModuleId() + { + $handler = config('articlelist.handler'); + $allModules = ModulesHandlerToId::getWithTranslations(); + $moduleId = isset($allModules[$handler]) ? $allModules[$handler] : null; + + return $moduleId; + } + + public static function supportCategories() + { + return false; + } + + /** + * Save module-specific values into database + * + * @param Content $content + * @param Request $request + * + * @return mixed + * @internal param Widget $widget + */ + public static function createNew(Content &$content, Request $request) + { + } + + /** + * Method used for editing existing content page. + * + * Reason why it is separated from createNew() method is simple - we need to save history of changes. + * + * @param Content $content + * @param Request $request + * + * @param $revisionID string ID of revision used + * + * @return int number of edited fields + */ + public static function edit(Content &$content, Request $request, $revisionID) + { + } + + /** + * Install module + * + * @return mixed + */ + public static function install() + { + } +} \ No newline at end of file diff --git a/modules/Blog/ArticleList/Http/Middleware/.gitkeep b/modules/Blog/ArticleList/Http/Middleware/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/modules/Blog/ArticleList/Http/Requests/.gitkeep b/modules/Blog/ArticleList/Http/Requests/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/modules/Blog/ArticleList/Providers/.gitkeep b/modules/Blog/ArticleList/Providers/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/modules/Blog/ArticleList/Providers/ArticleListServiceProvider.php b/modules/Blog/ArticleList/Providers/ArticleListServiceProvider.php index 510a581e..f60ddf45 100644 --- a/modules/Blog/ArticleList/Providers/ArticleListServiceProvider.php +++ b/modules/Blog/ArticleList/Providers/ArticleListServiceProvider.php @@ -1,6 +1,9 @@ publishes([ - __DIR__.'/../Config/config.php' => config_path('articlelist.php'), - ]); - $this->mergeConfigFrom( - __DIR__.'/../Config/config.php', 'articlelist' - ); + $this->publishes([__DIR__.'/../Config/config.php' => config_path('articlelist.php')]); + $this->mergeConfigFrom(__DIR__.'/../Config/config.php', 'articlelist'); } /** @@ -56,16 +54,30 @@ class ArticleListServiceProvider extends ServiceProvider { public function registerViews() { $viewPath = base_path('resources/views/modules/articlelist'); - $sourcePath = __DIR__.'/../Resources/views'; - $this->publishes([ - $sourcePath => $viewPath - ]); + $this->publishes([$sourcePath => $viewPath]); $this->loadViewsFrom(array_merge(array_map(function ($path) { return $path . '/modules/articlelist'; }, \Config::get('view.paths')), [$sourcePath]), 'articlelist'); + + + /** + * @var $registrator TemplateRegistrator + */ + try { + // setup some global variables + $registrator = $this->app->make('registerTemplateDir'); + $registrator->setBaseDirectory('resources/views/modules/articlelist/visitor'); + $registrator->setNamespace('articlelist'); + $registrator->setModuleId(ArticleList::getModuleId()); + + // register path with current template name + $registrator->register(config('app.theme'), 'articlelist::module.templatePath'); + } catch (InvalidArgumentException $e) { + // ignore this exception + } } /** diff --git a/modules/Blog/ArticleList/Repositories/.gitkeep b/modules/Blog/ArticleList/Repositories/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/modules/Blog/ArticleList/Resources/lang/.gitkeep b/modules/Blog/ArticleList/Resources/lang/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/modules/Blog/ArticleList/Resources/lang/cs/module.php b/modules/Blog/ArticleList/Resources/lang/cs/module.php new file mode 100644 index 00000000..8dc56bc6 --- /dev/null +++ b/modules/Blog/ArticleList/Resources/lang/cs/module.php @@ -0,0 +1,5 @@ + "Modul pro zobrazování seznamu článků na webu.", +"name" => "Seznam článků", +]; diff --git a/modules/Blog/ArticleList/Resources/lang/en/module.php b/modules/Blog/ArticleList/Resources/lang/en/module.php new file mode 100644 index 00000000..581543b4 --- /dev/null +++ b/modules/Blog/ArticleList/Resources/lang/en/module.php @@ -0,0 +1,5 @@ + 'Article list', + 'description' => 'Module for displaying list of articles on web', +]; \ No newline at end of file diff --git a/modules/Blog/ArticleList/Resources/views/.gitkeep b/modules/Blog/ArticleList/Resources/views/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/modules/Blog/ArticleList/Resources/views/index.blade.php b/modules/Blog/ArticleList/Resources/views/index.blade.php deleted file mode 100644 index bbb855f0..00000000 --- a/modules/Blog/ArticleList/Resources/views/index.blade.php +++ /dev/null @@ -1,11 +0,0 @@ -@extends('articlelist::layouts.master') - -@section('content') - -

Hello World

- -

- This view is loaded from module: {!! config('articlelist.name') !!} -

- -@stop \ No newline at end of file diff --git a/modules/Blog/ArticleList/Resources/views/layouts/master.blade.php b/modules/Blog/ArticleList/Resources/views/layouts/master.blade.php deleted file mode 100644 index 0519dc92..00000000 --- a/modules/Blog/ArticleList/Resources/views/layouts/master.blade.php +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - Module ArticleList - - - @yield('content') - - \ No newline at end of file diff --git a/modules/Blog/ArticleList/Tests/.gitkeep b/modules/Blog/ArticleList/Tests/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/modules/Blog/info.php b/modules/Blog/info.php index dd22fd64..0c426fe5 100644 --- a/modules/Blog/info.php +++ b/modules/Blog/info.php @@ -1,6 +1,7 @@ 'Blog', - 'description' => '', - 'hasSubmodules' => true, + 'name' => 'Blog', + 'translatedName' => 'article::module.blog', + 'description' => 'article.module.blogDescription', + 'hasSubmodules' => true, ]; \ No newline at end of file diff --git a/resources/views/visitor/cwbs/modules/ArticleList/list.blade.php b/resources/views/visitor/cwbs/modules/ArticleList/list.blade.php new file mode 100644 index 00000000..ac278af2 --- /dev/null +++ b/resources/views/visitor/cwbs/modules/ArticleList/list.blade.php @@ -0,0 +1 @@ +{{dd($page)}} \ No newline at end of file