FEATURE #1853: move widget areas 'views' into middleware
This commit is contained in:
@@ -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)];
|
||||
}
|
||||
}
|
||||
+9
-9
@@ -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,
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
namespace App\Http\Middleware\Admin;
|
||||
|
||||
use App\CMS\Handlers\Handler;
|
||||
use App\CMS\Repositories\Module as ModuleRepository;
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
namespace App\Http\Middleware\Admin;
|
||||
|
||||
use App\Models\User;
|
||||
use Closure;
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
namespace App\Http\Middleware\Admin;
|
||||
|
||||
use App\Models\User;
|
||||
use Closure;
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
namespace App\Http\Middleware\Admin;
|
||||
|
||||
use App\CMS\Handlers\Registrators\TemplateRegistrator;
|
||||
use Closure;
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
namespace App\Http\Middleware\Admin;
|
||||
|
||||
use App\CMS\Handlers\Registrators\WidgetRegistrator;
|
||||
use Closure;
|
||||
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware\Web;
|
||||
|
||||
use App\CMS\Helpers\WidgetAreas;
|
||||
use App\Models\Widgets\WidgetArea;
|
||||
use Closure;
|
||||
|
||||
class IncrementWidgetsViews
|
||||
{
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Closure $next
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function handle($request, Closure $next)
|
||||
{
|
||||
return $next($request);
|
||||
}
|
||||
|
||||
public function terminate($request, $response)
|
||||
{
|
||||
$widgets = WidgetAreas::getLoadedWidgets();
|
||||
|
||||
if (!empty($widgets['areas'])) {
|
||||
WidgetArea::whereIn('code', $widgets['areas'])
|
||||
->increment('viewed');
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user