Ejemplo n.º 1
0
 /**
  * Creates a new folder.
  *
  * previously in t3lib_extFileFunc::func_newfolder()
  *
  * @param string $folderName The new folder name
  * @param \TYPO3\CMS\Core\Resource\Folder $parentFolder (optional) the parent folder to create the new folder inside of. If not given, the root folder is used
  * @return \TYPO3\CMS\Core\Resource\Folder The new folder object
  */
 public function createFolder($folderName, \TYPO3\CMS\Core\Resource\Folder $parentFolder = NULL)
 {
     if ($parentFolder === NULL) {
         $parentFolder = $this->getRootLevelFolder();
     }
     if (!$this->driver->folderExists($parentFolder->getIdentifier())) {
         throw new \InvalidArgumentException('Parent folder "' . $parentFolder->getIdentifier() . '" does not exist.', 1325689164);
     }
     if (!$this->checkFolderActionPermission('add', $parentFolder)) {
         throw new \TYPO3\CMS\Core\Resource\Exception\InsufficientFolderWritePermissionsException('You are not allowed to create directories in the folder "' . $parentFolder->getIdentifier() . '"', 1323059807);
     }
     $folderParts = \TYPO3\CMS\Core\Utility\GeneralUtility::trimExplode('/', $folderName, TRUE);
     foreach ($folderParts as $folder) {
         // TODO check if folder creation succeeded
         if ($this->hasFolderInFolder($folder, $parentFolder)) {
             $parentFolder = $this->driver->getFolderInFolder($folder, $parentFolder);
         } else {
             $parentFolder = $this->driver->createFolder($folder, $parentFolder);
         }
     }
     return $parentFolder;
 }