share view data with session.

This commit is contained in:
Edward Yang 2022-08-03 15:52:32 +08:00
parent 2a4b3e2e5e
commit 79846ed46f
4 changed files with 40 additions and 22 deletions

View File

@ -33,10 +33,11 @@ class Kernel extends HttpKernel
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
// \Illuminate\Session\Middleware\AuthenticateSession::class,
\App\Http\Middleware\Language::class,
\App\Http\Middleware\SetLocaleFromSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
\App\Http\Middleware\ShareViewData::class,
],
'api' => [

View File

@ -4,18 +4,16 @@ namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\App;
use Illuminate\Http\RedirectResponse;
class Language
class SetLocaleFromSession
{
/**
* Handle an incoming request.
*
* @param Request $request
* @param Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
* @return Response|RedirectResponse
* @param Closure $next
* @return mixed
*/
public function handle(Request $request, Closure $next)
{

View File

@ -0,0 +1,35 @@
<?php
/**
* ShareViewData.php
*
* @copyright 2022 opencart.cn - All Rights Reserved
* @link http://www.guangdawangluo.com
* @author Edward Yang <yangjin@opencart.cn>
* @created 2022-08-03 15:46:13
* @modified 2022-08-03 15:46:13
*/
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\View;
use Beike\Repositories\CategoryRepo;
use Beike\Repositories\LanguageRepo;
class ShareViewData
{
public function handle(Request $request, Closure $next)
{
$this->loadShopShareViewData();
return $next($request);
}
protected function loadShopShareViewData()
{
View::share('design', request('design') == 1);
View::share('languages', LanguageRepo::enabled());
View::share('shop_base_url', shop_route('home.index'));
View::share('categories', hook_filter('header.categories', CategoryRepo::getTwoLevelCategories()));
}
}

View File

@ -44,14 +44,8 @@ class ShopServiceProvider extends ServiceProvider
$this->mergeConfigFrom(__DIR__ . '/../../Config/beike.php', 'beike');
$this->registerGuard();
$this->loadThemeViewPath();
$this->loadComponents();
$this->app->booted(function () {
$this->loadShareViewData();
});
}
@ -86,14 +80,4 @@ class ShopServiceProvider extends ServiceProvider
'sidebar' => AccountSidebar::class,
]);
}
protected function loadShareViewData()
{
View::share('design', request('design') == 1);
View::share('languages', \Beike\Repositories\LanguageRepo::enabled());
View::share('shop_base_url', shop_route('home.index'));
$menuCategories = CategoryRepo::getTwoLevelCategories();
View::share('categories', Eventy::filter('header.categories', $menuCategories));
}
}