/** * Register any other events for your application. * * @param DispatcherContract $events * * @return void */ public function boot(DispatcherContract $events) { $events->listen('KodiCMS\\Pages\\Events\\FrontPageFound', function ($event) { $this->app->singleton('layout.widgets', function ($app) use($event) { return new PageWidgetCollection($app['widget.manager'], $event->getPage()->getId()); }); $block = new Block(app('layout.widgets')); $this->app->singleton('layout.block', function ($app) use($block) { return $block; }); }, 9000); $events->listen('view.page.create', function ($page) { echo view('widgets::widgets.page.create')->with('page', $page)->with('pages', $page->getSitemap())->render(); }); $events->listen('view.page.edit', function ($page) { if (acl_check('widgets::list') and $page->hasLayout()) { // echo view('widgets::widgets.page.iframe', compact('page'))->render(); echo view('widgets::widgets.page.list', ['page' => $page, 'widgetsCollection' => (new PageWidgetCollection(app('widget.manager'), $page->id))->getRegisteredWidgets()])->render(); } }); $events->listen('view.widget.edit', function ($widget) { if ($widget->isRenderable()) { $commentKeys = app('widget.manager')->getTemplateKeysByType($widget->type); $snippets = (new SnippetCollection())->getHTMLSelectChoices(); echo view('widgets::widgets.partials.renderable', compact('widget', 'commentKeys', 'snippets'))->render(); } if ($widget->isCacheable() and acl_check('widget_settings::cache')) { echo view('widgets::widgets.partials.cacheable', compact('widget'))->render(); } }); $events->listen('view.widget.edit.footer', function ($widget) { if ($widget->isRenderable()) { $assetsPackages = PackageManager::getHTMLSelectChoice(); $widgetList = Widget::where('id', '!=', $widget->id)->lists('name', 'id')->all(); echo view('widgets::widgets.partials.renderable_buttons', compact('widget', 'commentKeys', 'snippets', 'assetsPackages', 'widgetList'))->render(); } if (acl_check('widget_settings::roles') and !$widget->isHandler()) { $usersRoles = Role::pluck('name', 'id')->all(); echo view('widgets::widgets.partials.permissions', compact('widget', 'usersRoles'))->render(); } }); $events->listen('view.widget.edit.settings', function ($widget) { if ($widget->toWidget() instanceof WidgetPaginator) { echo view('widgets::widgets.paginator.widget', ['widget' => $widget->toWidget()])->render(); } }); $events->listen('view.widget.edit.footer', function ($widget) { if ($widget->isHandler()) { echo view('widgets::widgets.partials.handler', compact('widget'))->render(); } }); Page::created(function ($page) { $pageId = array_get(Request::get('widgets'), 'from_page_id'); if (!empty($pageId)) { app('widget.manager')->copyWidgets($pageId, $page->id); } }); Page::deleted(function ($page) { app('widget.manager')->deleteWidgetsFromPage($page->id); }); Page::saving(function ($page) { $postData = Request::input('widget', []); foreach ($postData as $widgetId => $location) { if (array_key_exists('block', $location)) { app('widget.manager')->updateWidgetOnPage($widgetId, $page->id, $location); } } }); Widget::observe(new WidgetObserver()); }