public function boot() { // sleep(1); Event::listen('cms.page.beforeDisplay', function ($controller, $url, $page) { if ($params = post('X_OCTOBER_NG_PARAMS')) { $controller->getRouter()->setParameters($params); } }); Event::listen('cms.page.display', function ($controller, $url, $page) { if (array_key_exists('ng-page', Input::all()) && $controller->getAjaxHandler() === null) { if ($content = $controller->renderPage()) { return $content; } // If we don't return something, this will cause an infinite loop return '<!-- No content -->'; } }); Event::listen('cms.page.init', function ($controller, $page) { if ($partial = post('ng-partial')) { return $controller->renderPartial($partial); } }); Event::listen('backend.form.extendFields', function ($widget) { if (!$widget->getController() instanceof \Cms\Controllers\Index) { return; } if (!$widget->model instanceof \Cms\Classes\Page) { return; } PageScript::fromTemplate($widget->model)->populate(); $widget->addFields(['script' => ['tab' => 'Script', 'stretch' => 'true', 'type' => 'codeeditor', 'language' => 'javascript']], 'secondary'); }); Event::listen('cms.template.save', function ($controller, $template, $type) { if ($type != 'page') { return; } $script = PageScript::fromTemplate($template); $script->fill(post('script')); $script->save(); }); }
public function onGetPageDependencies() { $response = []; $this->pageCycle(); /* * Add the front-end controller, if available. */ $page = array_get($this->page['this'], 'page'); $pageScript = PageScript::fromTemplate($page); if ($scriptPath = $pageScript->getPublicPath()) { $this->addJs($scriptPath . '?v=' . $page->mtime); } /* * Detect assets */ if ($this->controller->hasAssetsDefined()) { $response['X_OCTOBER_ASSETS'] = $this->controller->getAssetPaths(); } $response['scope'] = $this->scope; return $response; }