/**
  * update division document
  *
  * @param DocumentEntity $doc    insert values
  * @param ConfigEntity   $config document config entity
  * @return DocumentEntity
  */
 public function updateDivision(DocumentEntity $doc, ConfigEntity $config)
 {
     if ($config->get('division') == true) {
         $this->connection->dynamic($this->divisionTable($config), [], false)->where('id', $doc->id)->update($doc->getAttributes());
     }
     return $doc;
 }
 /**
  * test set approved exception
  *
  * @expectedException \Xpressengine\Document\Exceptions\DocumentEntityException
  * @return void
  */
 public function testSetPublishedException()
 {
     $entity = new DocumentEntity();
     $entity->setPublished('not-exists');
 }
 /**
  * 미리보기
  *
  * @return \Illuminate\Http\RedirectResponse
  * @throws \Xpressengine\Keygen\UnknownGeneratorException
  */
 public function preview()
 {
     /** @var \Illuminate\Http\Request $request */
     $request = app('request');
     if ($this->permissionHandler->hasCreate($this->boardId) === false) {
         throw new AccessDeniedHttpException();
     }
     $user = Auth::user();
     // get rules
     /** @var \Xpressengine\Plugins\Board\Validator $validator */
     $validator = app('xe.board.validator');
     $rules = $validator->makeRule($this->config);
     if ($user instanceof Guest) {
         $rules = array_merge($rules, $validator->guestStore());
     }
     $this->validate($request, $rules);
     $doc = new DocumentEntity($this->handler->documentFilter($request->all()));
     $doc->id = 'preview-' . (new Keygen())->generate();
     $doc->instanceId = $this->boardId;
     $doc->createdAt = date('Y-m-d H:i:s');
     if ($user instanceof Guest) {
         $doc->setUserType($doc::USER_TYPE_GUEST);
     }
     $doc->setAuthor($user);
     $item = $this->handler->makeItem($doc);
     /** @var \Xpressengine\Storage\Storage $storage */
     if (($fileIds = $request->get('_files')) !== null) {
         $storage = app('xe.storage');
         $item->setFiles($storage->getsIn($fileIds));
     }
     $formColumns = $this->configHandler->formColumns($this->boardId);
     return Presenter::make('preview', ['config' => $this->config, 'item' => $item, 'handler' => $this->handler, 'formColumns' => $formColumns]);
 }
 /**
  * restore from trash
  *
  * @param DocumentEntity $doc document entity
  * @return DocumentEntity
  */
 public function restore(DocumentEntity $doc)
 {
     $doc->restore();
     $config = $this->configHandler->get($doc->instanceId);
     if ($config === null) {
         throw new Exceptions\ConfigNotExistsException();
     }
     $doc = $this->repo->update($doc, $config);
     $this->removeCache($doc);
     return $doc;
 }
Exemple #5
0
 /**
  * Returns description
  *
  * @return string
  */
 public function getDescription()
 {
     return $this->doc ? $this->doc->getPureContent() : '';
 }
 /**
  * insert new document revision
  *
  * @param DocumentEntity $doc    inserted document entity
  * @param ConfigEntity   $config document config entity
  * @return DocumentEntity
  */
 public function insert(DocumentEntity $doc, ConfigEntity $config)
 {
     $doc->revisionId = $this->keygen->generate();
     $doc->revisionNo = $this->nextNo($doc->id);
     $this->connection->dynamic($this->table)->insert($doc->getAttributes());
     $configs = $this->revisionManager->getHandler()->getConfigHandler()->gets($config->get('group'));
     $this->revisionManager->add($configs, $doc->getAttributes());
     return $doc;
 }
Exemple #7
0
 /**
  * create board item entity by document entity
  *
  * @param DocumentEntity        $doc     document entity
  * @param Request               $request request
  * @param MemberEntityInterface $user    user
  * @return ItemEntity
  */
 public function makeItem(DocumentEntity $doc, Request $request = null, MemberEntityInterface $user = null)
 {
     if ($request !== null && $user !== null) {
         if ($request->get('notice') === '1') {
             $doc->notice();
         }
         // 비회원 글쓰기 또는 익명 글쓰기 처리
         if ($user instanceof Guest) {
             $doc->guest();
         } elseif ($request->get('anonymity') == '1') {
             $doc->anonymity($this->config->get('anonymityName'));
         } else {
             $doc->setAuthor($user);
         }
     }
     $item = new ItemEntity();
     $item->setDocument($doc);
     if ($request !== null) {
         // set files
         if (($fileIds = $request->get('_files')) !== null) {
             $item->setFiles($this->storage->getsIn($fileIds));
         }
     }
     return $item;
 }