/**
  * @see BackendAdapter::updateFolder
  */
 public function updateFolder(Folder $folder)
 {
     $sql = "\n        UPDATE xi_filelib_folder\n        SET parent_id = :parentId, foldername = :name, folderurl = :url, uuid = :uuid, data = :data\n        WHERE id = :id\n        ";
     $stmt = $this->conn->prepare($sql);
     $stmt->execute(array('parentId' => $folder->getParentId(), 'name' => $folder->getName(), 'url' => $folder->getUrl(), 'uuid' => $folder->getUuid(), 'id' => $folder->getId(), 'data' => json_encode($folder->getdata()->toArray())));
     return (bool) $stmt->rowCount();
 }
Example #2
0
 /**
  * Creates a folder
  *
  * @param Folder $folder
  */
 public function create(Folder $folder)
 {
     if ($folder->getParentId() === null && $folder->getName() !== 'root') {
         throw new LogicException('Only one root folder may exist');
     }
     if ($folder->getParentId()) {
         $parentFolder = $this->find($folder->getParentId());
         $event = new FolderEvent($parentFolder);
         $this->eventDispatcher->dispatch(Events::FOLDER_BEFORE_WRITE_TO, $event);
     }
     $route = $this->buildRoute($folder);
     $folder->setUrl($route);
     $folder->setUuid(Uuid::uuid4()->toString());
     $event = new FolderEvent($folder);
     $this->eventDispatcher->dispatch(Events::FOLDER_BEFORE_CREATE, $event);
     $this->backend->createFolder($folder);
     $event = new FolderEvent($folder);
     $this->eventDispatcher->dispatch(Events::FOLDER_AFTER_CREATE, $event);
     return $folder;
 }
 /**
  * @see BackendAdapter::updateFolder
  */
 public function updateFolder(Folder $folder)
 {
     try {
         $folderRow = $this->getFolderReference($folder->getId());
         if ($folder->getParentId()) {
             $folderRow->setParent($this->getFolderReference($folder->getParentId()));
         } else {
             $folderRow->removeParent();
         }
         $folderRow->setName($folder->getName());
         $folderRow->setUrl($folder->getUrl());
         $folderRow->setUuid($folder->getUuid());
         $folderRow->setData($folder->getData()->toArray());
         $this->em->flush($folderRow);
         return true;
     } catch (EntityNotFoundException $e) {
         return false;
     }
 }
Example #4
0
 /**
  * Creates a file
  *
  * @param  File             $file
  * @param  Folder           $folder
  * @throws FilelibException If file could not be uploaded.
  */
 public function createFile(File $file, Folder $folder)
 {
     $finder = new FileFinder(array('folder_id' => $folder->getId(), 'name' => $file->getName()));
     if ($this->findByFinder($finder)->count()) {
         throw new NonUniqueFileException(sprintf('A file with the name "%s" already exists in folder "%s"', $file->getName(), $folder->getName()));
     }
     return $this->resolveAdapter()->createFile($file, $folder);
 }