Create and register a page sidebar event handler

parent 062a171c
<?php <?php
namespace Modules\Page\Sidebar; namespace Modules\Page\Events\Handlers;
use Maatwebsite\Sidebar\Group; use Maatwebsite\Sidebar\Group;
use Maatwebsite\Sidebar\Item; use Maatwebsite\Sidebar\Item;
use Maatwebsite\Sidebar\Menu; use Maatwebsite\Sidebar\Menu;
use Modules\Core\Events\BuildingSidebar;
use Modules\User\Contracts\Authentication; use Modules\User\Contracts\Authentication;
class SidebarExtender implements \Maatwebsite\Sidebar\SidebarExtender class AddPageSidebar implements \Maatwebsite\Sidebar\SidebarExtender
{ {
/** /**
* @var Authentication * @var Authentication
...@@ -24,9 +25,15 @@ class SidebarExtender implements \Maatwebsite\Sidebar\SidebarExtender ...@@ -24,9 +25,15 @@ class SidebarExtender implements \Maatwebsite\Sidebar\SidebarExtender
$this->auth = $auth; $this->auth = $auth;
} }
public function handle(BuildingSidebar $sidebar)
{
$menu = $sidebar->getMenu();
$menu1 = $this->extendWith($menu);
$sidebar->add($menu1);
}
/** /**
* @param Menu $menu * @param Menu $menu
*
* @return Menu * @return Menu
*/ */
public function extendWith(Menu $menu) public function extendWith(Menu $menu)
......
...@@ -4,9 +4,12 @@ namespace Modules\Page\Providers; ...@@ -4,9 +4,12 @@ namespace Modules\Page\Providers;
use Illuminate\Support\Facades\Config; use Illuminate\Support\Facades\Config;
use Illuminate\Support\ServiceProvider; use Illuminate\Support\ServiceProvider;
use Modules\Core\Events\BuildingSidebar;
use Modules\Core\Events\CollectingAssets; use Modules\Core\Events\CollectingAssets;
use Modules\Core\Traits\CanGetSidebarClassForModule;
use Modules\Core\Traits\CanPublishConfiguration; use Modules\Core\Traits\CanPublishConfiguration;
use Modules\Page\Entities\Page; use Modules\Page\Entities\Page;
use Modules\Page\Events\Handlers\AddPageSidebar;
use Modules\Page\Repositories\Cache\CachePageDecorator; use Modules\Page\Repositories\Cache\CachePageDecorator;
use Modules\Page\Repositories\Eloquent\EloquentPageRepository; use Modules\Page\Repositories\Eloquent\EloquentPageRepository;
use Modules\Page\Repositories\PageRepository; use Modules\Page\Repositories\PageRepository;
...@@ -15,7 +18,7 @@ use Modules\Tag\Repositories\TagManager; ...@@ -15,7 +18,7 @@ use Modules\Tag\Repositories\TagManager;
class PageServiceProvider extends ServiceProvider class PageServiceProvider extends ServiceProvider
{ {
use CanPublishConfiguration; use CanPublishConfiguration, CanGetSidebarClassForModule;
/** /**
* Indicates if loading of the provider is deferred. * Indicates if loading of the provider is deferred.
* *
...@@ -31,6 +34,11 @@ class PageServiceProvider extends ServiceProvider ...@@ -31,6 +34,11 @@ class PageServiceProvider extends ServiceProvider
public function register() public function register()
{ {
$this->registerBindings(); $this->registerBindings();
$this->app['events']->listen(
BuildingSidebar::class,
$this->getSidebarClassForModule('page', AddPageSidebar::class)
);
} }
public function boot() public function boot()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment