Ejemplo n.º 1
0
 /**
  * Previously in t3lib_extFileFunc::folder_move()
  *
  * @param \TYPO3\CMS\Core\Resource\Folder $folderObject
  * @param string $newName
  * @throws \Exception
  * @throws \InvalidArgumentException
  * @return \TYPO3\CMS\Core\Resource\Folder
  */
 public function renameFolder($folderObject, $newName)
 {
     // TODO unit tests
     // TODO access checks
     $returnObject = NULL;
     if ($this->driver->folderExistsInFolder($newName, $folderObject)) {
         throw new \InvalidArgumentException('The folder ' . $newName . ' already exists in folder ' . $folderObject->getIdentifier(), 1325418870);
     }
     $this->emitPreFolderRenameSignal($folderObject, $newName);
     $fileObjects = $this->getAllFileObjectsInFolder($folderObject);
     try {
         $fileMappings = $this->driver->renameFolder($folderObject, $newName);
         // Update the identifier of all file objects
         foreach ($fileObjects as $oldIdentifier => $fileObject) {
             $newIdentifier = $fileMappings[$oldIdentifier];
             $fileObject->updateProperties(array('identifier' => $newIdentifier));
         }
         $returnObject = $this->getFolder($fileMappings[$folderObject->getIdentifier()]);
     } catch (\Exception $e) {
         throw $e;
     }
     $this->emitPostFolderRenameSignal($folderObject, $newName);
     return $returnObject;
 }