public function destroy()
 {
     $ids = Input::get('id');
     $files = $this->storage->getsIn($ids);
     foreach ($files as $file) {
         $this->storage->remove($file);
     }
     if (Input::get('redirect') != null) {
         return redirect(Input::get('redirect'));
     } else {
         return redirect()->route('manage.storage.index');
     }
 }
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);
     }
 }
Esempio n. 3
0
 public function testGetsIn()
 {
     list($handler, $repo, $auth, $keygen) = $this->getMocks();
     $instance = new Storage($handler, $repo, $auth, $keygen);
     $mockFile1 = m::mock('Xpressengine\\Storage\\File');
     $mockFile2 = m::mock('Xpressengine\\Storage\\File');
     $repo->shouldReceive('fetchIn')->once()->with(['id_1', 'id_2'])->andReturn([$mockFile1, $mockFile2]);
     $files = $instance->getsIn(['id_1', 'id_2']);
     $this->assertEquals(2, count($files));
 }