/** * Register the service provider. * * @return void */ public function register() { $app = $this->app; // set reply code length config to Document model Document::setReplyCharLen($app['config']['xe.documentReplyCodeLen']); $app->singleton('xe.document.config', function ($app) { return new ConfigHandler($app['xe.config']); }); $app->singleton('xe.document.instance', function ($app) { $instanceManagerClass = $app['xe.interception']->proxy(InstanceManager::class, 'DocumentInstanceManager'); return new $instanceManagerClass($app['xe.db']->connection('document'), $app['xe.document.config']); }); $app->singleton(['xe.document' => DocumentHandler::class], function ($app) { $documentHandlerClass = $app['xe.interception']->proxy(DocumentHandler::class, 'Document'); $document = new $documentHandlerClass($app['xe.db']->connection('document'), $app['xe.document.config'], $app['xe.document.instance'], $app['request']); return $document; }); }
/** * get array * * @return array */ public function toArray() { /** @var Request $request */ $request = app('request'); $this->attributes['links'] = ['rel' => 'self', 'href' => app('Xpressengine\\Plugins\\Board\\UrlHandler')->getShow($this, $request->query->all())]; $this->attributes['user'] = $this->user; $this->attributes['tags'] = $this->tags; return parent::toArray(); }
/** * 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]); }
/** * set model's config * * @param Document $doc document model * @param string $instanceId document instance id * @return Document */ public function setModelConfig(Document $doc, $instanceId) { $config = $this->getConfig($instanceId); $doc->setConfig($config, $this->getDivisionTableName($config)); return $doc; }
/** * render * * @param array $args to render parameter array * * @return mixed */ public function render(array $args) { $viewData = ['totalDocument' => Document::count(), 'totalMember' => XeUser::users()->count()]; return View::make('widget.widgets.contentInfo.show', ['viewData' => $viewData]); }
/** * 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; }