From 6c7122b494d5f1965af38fb8f68177a6cd4aea34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Kv=C3=A1=C4=8Dek?= Date: Tue, 15 Mar 2016 15:02:36 +0100 Subject: [PATCH] FEATURE: prepare class structure for menu widget. --- .../Registrators/MenuExtensionRegistrator.php | 20 ++++++ app/Providers/AppServiceProvider.php | 12 ++++ .../Contracts/MenuExtensionHandler.php | 7 ++ app/Widgets/Menu/Extensions/URL.php | 11 +++ app/Widgets/Menu/Menu.php | 68 +++++++++++++++++++ app/Widgets/Menu/Presenters/Menu.php | 47 +++++++++++++ resources/lang/en/widgets/menu.php | 5 ++ 7 files changed, 170 insertions(+) create mode 100644 app/Handlers/Registrators/MenuExtensionRegistrator.php create mode 100644 app/Widgets/Contracts/MenuExtensionHandler.php create mode 100644 app/Widgets/Menu/Extensions/URL.php create mode 100644 app/Widgets/Menu/Menu.php create mode 100644 app/Widgets/Menu/Presenters/Menu.php create mode 100644 resources/lang/en/widgets/menu.php diff --git a/app/Handlers/Registrators/MenuExtensionRegistrator.php b/app/Handlers/Registrators/MenuExtensionRegistrator.php new file mode 100644 index 00000000..06d38a13 --- /dev/null +++ b/app/Handlers/Registrators/MenuExtensionRegistrator.php @@ -0,0 +1,20 @@ +menuExtensions[] = $handler; + } + + public function get(){ + return $this->menuExtensions; + } +} \ No newline at end of file diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 31abfee2..a9d70eb2 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -2,6 +2,7 @@ namespace App\Providers; +use App\Handlers\Registrators\MenuExtensionRegistrator; use App\Handlers\Registrators\SearchEngineRegistrator; use App\Handlers\Registrators\SettingsExtensionRegistrator; use App\Handlers\Registrators\TemplateRegistrator; @@ -11,6 +12,8 @@ use App\Handlers\Search\Files; use App\Handlers\Search\Presenters\AdminContent as AdminContentPresenter; use App\Handlers\Search\Presenters\AdminFiles; use App\Widgets\HtmlCode\HtmlCode; +use App\Widgets\Menu\Extensions\URL; +use App\Widgets\Menu\Menu; use Illuminate\Support\ServiceProvider; class AppServiceProvider extends ServiceProvider @@ -49,6 +52,10 @@ class AppServiceProvider extends ServiceProvider return new WidgetRegistrator($app); }); + $this->app->singleton('registerMenuExtension', function ($app) { + return new MenuExtensionRegistrator($app); + }); + // create registrator for template directories $this->app->singleton('registerTemplateDir', function ($app) { return new TemplateRegistrator($app); @@ -75,6 +82,11 @@ class AppServiceProvider extends ServiceProvider // register all available widgets $registrator->register(HtmlCode::class); + $registrator->register(Menu::class); + + // register some menu extensions + $menuExtensions = $this->app->make('registerMenuExtension'); + $menuExtensions->register(new URL()); } /** diff --git a/app/Widgets/Contracts/MenuExtensionHandler.php b/app/Widgets/Contracts/MenuExtensionHandler.php new file mode 100644 index 00000000..bf4cd89d --- /dev/null +++ b/app/Widgets/Contracts/MenuExtensionHandler.php @@ -0,0 +1,7 @@ + 'Menu', + 'description' => 'User defined menu' +]; \ No newline at end of file