/** * 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; }
/** * 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; }
/** * 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; }