From 6af0c16a9a62fd76145f0cab51a63655a5505c2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Kv=C3=A1=C4=8Dek?= Date: Thu, 10 Aug 2017 19:59:40 +0200 Subject: [PATCH] FEATURE #1853: move widget areas 'views' into middleware --- app/CMS/Helpers/WidgetAreas.php | 16 +++++---- app/Http/Kernel.php | 18 +++++----- .../{ => Admin}/AdminMenuRegistrator.php | 2 +- .../Middleware/{ => Admin}/Authenticate.php | 2 +- .../{ => Admin}/RequireAdminRole.php | 2 +- .../{ => Admin}/TemplatePathInstaller.php | 2 +- .../{ => Admin}/WidgetInstaller.php | 2 +- .../Middleware/Web/IncrementWidgetsViews.php | 33 +++++++++++++++++++ 8 files changed, 57 insertions(+), 20 deletions(-) rename app/Http/Middleware/{ => Admin}/AdminMenuRegistrator.php (97%) rename app/Http/Middleware/{ => Admin}/Authenticate.php (97%) rename app/Http/Middleware/{ => Admin}/RequireAdminRole.php (93%) rename app/Http/Middleware/{ => Admin}/TemplatePathInstaller.php (94%) rename app/Http/Middleware/{ => Admin}/WidgetInstaller.php (94%) create mode 100644 app/Http/Middleware/Web/IncrementWidgetsViews.php diff --git a/app/CMS/Helpers/WidgetAreas.php b/app/CMS/Helpers/WidgetAreas.php index 2db7e3c8..907b721f 100644 --- a/app/CMS/Helpers/WidgetAreas.php +++ b/app/CMS/Helpers/WidgetAreas.php @@ -3,7 +3,6 @@ namespace App\CMS\Helpers; use App\CMS\Repositories\Widgets\WidgetArea as WidgetAreaRepository; -use App\Models\Widgets\WidgetArea; use Illuminate\Support\Facades\Cache; class WidgetAreas @@ -27,9 +26,6 @@ class WidgetAreas protected static function loadWidgetArea($uniqueCode) { - WidgetArea::where('code', $uniqueCode) - ->increment('viewed'); - $widgets = Cache::remember('widget-area-' . $uniqueCode, setting('widgetCacheLifetime', 5), function () use ($uniqueCode) { $widgetArea = app(\App\CMS\Repositories\Widgets\WidgetArea::class); @@ -69,12 +65,20 @@ class WidgetAreas self::initWidgetAreas(); } -// dd($uniqueCode); - if (!isset(self::$widgetAreas[$uniqueCode])) { self::loadWidgetArea($uniqueCode); } echo isset(self::$widgetAreas[$uniqueCode]) ? self::$widgetAreas[$uniqueCode] : null; } + + /** + * Get list of loaded widgets and areas + * + * @return array + */ + public static function getLoadedWidgets() + { + return ['areas' => array_keys(self::$widgetAreas)]; + } } \ No newline at end of file diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index 70219ecc..ad98f73b 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -2,8 +2,7 @@ namespace App\Http; -use App\Http\Middleware\TemplatePathInstaller; -use App\Http\Middleware\WidgetInstaller; +use App\Http\Middleware\Web\IncrementWidgetsViews; use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse; use Illuminate\Foundation\Http\Kernel as HttpKernel; use Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode; @@ -37,12 +36,13 @@ class Kernel extends HttpKernel 'web' => [ CheckForMaintenanceMode::class, AddQueuedCookiesToResponse::class, + IncrementWidgetsViews::class ], 'admin' => [ - Middleware\Authenticate::class, - Middleware\AdminMenuRegistrator::class, - TemplatePathInstaller::class, - WidgetInstaller::class, + Middleware\Admin\Authenticate::class, + Middleware\Admin\AdminMenuRegistrator::class, + Middleware\Admin\TemplatePathInstaller::class, + Middleware\Admin\WidgetInstaller::class, ], 'api' => [ 'throttle:60,1', @@ -54,9 +54,9 @@ class Kernel extends HttpKernel * @var array */ protected $routeMiddleware = [ - 'auth' => Middleware\Authenticate::class, - 'onlyAdmin' => Middleware\RequireAdminRole::class, - 'adminMenu' => Middleware\AdminMenuRegistrator::class, + 'auth' => Middleware\Admin\Authenticate::class, + 'onlyAdmin' => Middleware\Admin\RequireAdminRole::class, + 'adminMenu' => Middleware\Admin\AdminMenuRegistrator::class, 'guest' => Middleware\RedirectIfAuthenticated::class, 'throttle' => ThrottleRequests::class, 'localize' => LaravelLocalizationRoutes::class, diff --git a/app/Http/Middleware/AdminMenuRegistrator.php b/app/Http/Middleware/Admin/AdminMenuRegistrator.php similarity index 97% rename from app/Http/Middleware/AdminMenuRegistrator.php rename to app/Http/Middleware/Admin/AdminMenuRegistrator.php index 3706e80e..3291a92f 100644 --- a/app/Http/Middleware/AdminMenuRegistrator.php +++ b/app/Http/Middleware/Admin/AdminMenuRegistrator.php @@ -1,6 +1,6 @@ increment('viewed'); + } + } +}