Config를 설정할 때 division 을 사용하는 경우에는 이 모델의 table 이름을 division table 이름으로 변경합니다.
Author: XE Developers (developers@xpressengine.com)
Inheritance: extends Xpressengine\Database\Eloquent\DynamicModel
 /**
  * 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;
     });
 }
Example #2
0
 /**
  * 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;
 }
Example #5
0
 /**
  * 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]);
 }
Example #6
0
 /**
  * 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;
 }