/** * preview * * @param Request $request * @param PageHandler $pageHandler page handler * * @return \Xpressengine\Presenter\RendererInterface */ public function preview(Request $request, PageHandler $pageHandler) { $pageId = $this->pageId; $config = $pageHandler->getPageConfig($pageId); $user = $request->user(); /** @var \Illuminate\Http\Request $request */ $request = app('request'); $title = $request->get('pageTitle'); $mode = $request->get('mode'); $documentInputs = $request->except('_token', 'certifyKey_confirmation', 'anonymity', 'queryString', 'notice', '_codes', '_links', '_hashTags', '_mentions', '_files'); $previewDoc = new Document($documentInputs); $previewDoc->id = 'preview-' . app('xe.keygen')->generate(); $previewDoc->instanceId = $pageId; $previewDoc->user()->associate($user); $page = new PageEntity(['pageId' => $pageId, 'uid' => $previewDoc->id, 'content' => $previewDoc]); $content = $previewDoc->content; return XePresenter::make('show', ['pageId' => $pageId, 'page' => $page, 'title' => $title, 'content' => $content, 'config' => $config]); }
/** * createPageDocument * * @param string $pageId page instance id * @param string $pageTitle page title * @param string $locale locale * * @return string * @throws \Exception */ public function createPageDocument($pageId, $pageTitle, $locale) { $doc = new Document(); $doc->instanceId = $pageId; $doc->type = PageModule::getId(); $doc->title = $pageTitle; $doc->locale = $locale; /** @var UserInterface $user */ $user = $this->auth->user(); $doc->writer = $user->getDisplayName(); $doc->user()->associate($user); $doc->format = Document::FORMAT_HTML; XeDB::beginTransaction(); try { $this->document->put($doc); } catch (\Exception $e) { XeDB::rollback(); throw $e; } XeDB::commit(); return $doc->id; }