Esempio n. 1
0
 /**
  * get show page url
  * 1. slug 가 있다면 slug 로 url return
  * 1. short id 가 있다면 short id 로 url return
  * 1. 기본 id 로 url return
  *
  * @param ItemEntity $item   board item entity
  * @param array      $params parameters
  * @return string
  */
 public function getShow(ItemEntity $item, $params = [])
 {
     if ($item->getSlug() !== null) {
         return $this->getSlug($item->getSlug()->slug, $params);
     }
     $id = $item->id;
     if (($shortId = $item->getShortId()) !== null) {
         $id = $shortId->getId();
     }
     $params['id'] = $id;
     return $this->get('show', $params);
 }
Esempio n. 2
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);
     }
 }