/** * Getter function to return the folder where the files can * be processed. does not check for access rights here * * @todo check if we need to implement "is writable" capability * @return \TYPO3\CMS\Core\Resource\Folder the processing folder, can be empty as well, if the storage doesn't have a processing folder */ public function getProcessingFolder() { if (!isset($this->processingFolder)) { $processingFolder = self::DEFAULT_ProcessingFolder; if (!empty($this->storageRecord['processingfolder'])) { $processingFolder = $this->storageRecord['processingfolder']; } $processingFolder = '/' . trim($processingFolder, '/') . '/'; // this way, we also worry about deeplinked folders like typo3temp/_processed_ if ($this->driver->folderExists($processingFolder) === FALSE) { $processingFolderParts = explode('/', $processingFolder); $parentFolder = $this->driver->getRootLevelFolder(); foreach ($processingFolderParts as $folderPart) { if (!$this->driver->folderExistsInFolder($folderPart, $parentFolder)) { $parentFolder = $this->driver->createFolder($folderPart, $parentFolder); } else { $parentFolder = $parentFolder->getSubfolder($folderPart); } } } $this->processingFolder = $this->driver->getFolder($processingFolder); } return $this->processingFolder; }