put() public method

update document
public put ( Document $doc ) : Document
$doc Xpressengine\Document\Models\Document document model
return Xpressengine\Document\Models\Document
Esempio n. 1
0
 /**
  * update document
  *
  * @param ItemEntity $item board item entity
  * @return void
  */
 public function put(ItemEntity $item)
 {
     $doc = $item->getDocument();
     // 비회원 글 수정시 비밀번호를 입력 안한 경우
     $origin = $doc->getOriginal();
     if ($origin['certifyKey'] != '' && $doc->certifyKey == '') {
         $doc->certifyKey = $origin['certifyKey'];
     }
     $doc = $this->document->put($doc);
     if ($item->slug != $item->getSlug()->slug) {
         $slugEntity = $item->getSlug();
         $slugEntity->slug = $item->slug;
         $this->slug->update($item->getSlug());
     }
     // file 이 없어진걸 처리해야해.. 파일을 삭제한 경우를 말이지!
     $currentFileIds = [];
     /** @var \Xpressengine\Storage\File $file */
     foreach ($this->storage->getsByTargetId($item->id) as $file) {
         $currentFileIds[] = $file->getId();
     }
     $uploadedFileIds = [];
     /** @var \Xpressengine\Storage\File $file */
     foreach ($item->getFiles() as $file) {
         $uploadedFileIds[] = $file->getId();
         $this->storage->bind($doc->id, $file);
     }
     $files = $this->storage->getsIn(array_diff($currentFileIds, $uploadedFileIds));
     foreach ($files as $file) {
         $this->storage->unBind($item->id, $file, true);
     }
 }
Esempio n. 2
0
 /**
  * updatePageContent
  *
  * @param string $documentUid page content document id
  * @param string $pageId      page instance id
  * @param array  $content     content string
  * @param array  $title       title string
  * @param array  $locale      locale
  *
  * @return void
  * @throws \Exception
  */
 public function updatePageContent($documentUid, $pageId, $content, $title, $locale)
 {
     $document = $this->document->get($documentUid, $pageId);
     $document->content = $content;
     $document->title = $title;
     $document->locale = $locale;
     XeDB::beginTransaction();
     try {
         $this->document->put($document);
     } catch (\Exception $e) {
         XeDB::rollback();
         throw $e;
     }
     XeDB::commit();
 }
Esempio n. 3
0
 /**
  * update document
  *
  * @param Board        $board  board model
  * @param array        $args   arguments
  * @param ConfigEntity $config config entity
  * @return mixed
  */
 public function put(Board $board, array $args, ConfigEntity $config)
 {
     $board->getConnection()->beginTransaction();
     $attributes = $board->getAttributes();
     foreach ($args as $name => $value) {
         if (array_key_exists($name, $attributes)) {
             $board->{$name} = $value;
         }
     }
     $this->setModelConfig($board, $config);
     $doc = $this->documentHandler->put($board);
     $this->saveSlug($board, $args);
     $this->saveCategory($board, $args);
     $fileIds = $this->setFiles($board, $args);
     $this->setTags($board, $args);
     $this->unsetTags($board, $args);
     $this->saveData($board, $args);
     $board->getConnection()->commit();
     return $board->find($board->id);
 }
 /**
  * test put without user id
  *
  * @expectedException \Xpressengine\Document\Exceptions\RequiredValueException
  * @return void
  */
 public function testPutWithoutInstanceId()
 {
     $conn = $this->conn;
     $repo = $this->repo;
     $configHandler = $this->configHandler;
     $instanceManager = $this->instanceManager;
     $request = $this->request;
     $handler = new DocumentHandler($conn, $repo, $configHandler, $instanceManager, $request);
     $doc = $this->getDocumentEntity();
     $doc->userId = 'userId';
     $doc->shouldReceive('setPureContent');
     $doc->shouldReceive('getAuthor')->andReturn(null);
     $handler->put($doc);
 }