get('Content')->getData('head'); $head->addAsset(AssetType::JSLATE, $request->getUri()->getBase() . 'Modules/Editor/Models/Editor.js'); $head->addAsset(AssetType::JSLATE, $request->getUri()->getBase() . 'Modules/Editor/Controller.js'); } /** * @param RequestAbstract $request Request * @param ResponseAbstract $response Response * @param mixed $data Generic data * * @return \Serializable * * @since 1.0.0 */ public function viewEditorCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : \Serializable { $view = new View($this->app, $request, $response); $view->setTemplate('/Modules/Editor/Theme/Backend/editor-create'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1005301001, $request, $response)); $editor = new \Modules\Editor\Theme\Backend\Components\Editor\BaseView($this->app, $request, $response); $view->addData('editor', $editor); return $view; } /** * @param RequestAbstract $request Request * @param ResponseAbstract $response Response * @param mixed $data Generic data * * @return \Serializable * * @since 1.0.0 */ public function viewEditorList(RequestAbstract $request, ResponseAbstract $response, $data = null) : \Serializable { $view = new View($this->app, $request, $response); $view->setTemplate('/Modules/Editor/Theme/Backend/editor-list'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1005301001, $request, $response)); $docs = EditorDocMapper::getNewest(50); $view->addData('docs', $docs); return $view; } /** * @param RequestAbstract $request Request * @param ResponseAbstract $response Response * @param mixed $data Generic data * * @return \Serializable * * @since 1.0.0 */ public function viewEditorSingle(RequestAbstract $request, ResponseAbstract $response, $data = null) : \Serializable { $view = new View($this->app, $request, $response); $view->setTemplate('/Modules/Editor/Theme/Backend/editor-single'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1005301001, $request, $response)); $doc = EditorDocMapper::get((int) $request->getData('id')); $view->addData('doc', $doc); return $view; } private function validateEditorCreate(RequestAbstract $request) : array { $val = []; if ( ($val['title'] = empty($request->getData('title'))) || ($val['plain'] = empty($request->getData('plain'))) ) { return $val; } return []; } /** * @param RequestAbstract $request Request * @param ResponseAbstract $response Response * @param mixed $data Generic data * * @since 1.0.0 */ public function apiEditorCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) { if (!empty($val = $this->validateEditorCreate($request))) { $response->set('editor_create', new FormValidation($val)); return; } $doc = new EditorDoc(); $doc->setTitle($request->getData('title') ?? ''); $doc->setPlain($request->getData('plain') ?? ''); $doc->setContent($request->getData('plain') ?? ''); $doc->setCreatedAt(new \DateTime('now')); $doc->setCreatedBy($request->getHeader()->getAccount()); EditorDocMapper::create($doc); $response->set('editor', $doc->jsonSerialize()); } }