/** * Shows results for importing images from directory * * @param string $directory * @param Tx_Yag_Domain_Model_Album $album * @param bool $crawlRecursive If set to true, subdirs will also be crawled * @param bool $noDuplicates If set to true, items that are already imported to album won't be imported twice * @return string The HTML source for import from directory action * @rbacNeedsAccess * @rbacObject Album * @rbacAction edit */ public function importFromDirectoryAction($directory, Tx_Yag_Domain_Model_Album $album, $crawlRecursive = FALSE, $noDuplicates = FALSE) { // Directory must be within fileadmin $directory = Tx_Yag_Domain_FileSystem_Div::getT3BasePath() . $directory; $importer = Tx_Yag_Domain_Import_DirectoryImporter_ImporterBuilder::getInstance()->getInstanceByDirectoryAndAlbum($directory, $album); $importer->setNoDuplicates($noDuplicates); $importer->setCrawlRecursive($crawlRecursive); $importer->runImport(); $this->addFlashMessage(\TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate('tx_yag_controller_directoryimportcontroller_importfromdirectory.importsuccessfull', $this->extensionName, array($importer->getItemsImported())), '', \TYPO3\CMS\Core\Messaging\FlashMessage::OK); $this->yagContext->setAlbum($album); $this->forward('list', 'ItemList'); }
/** * Returns relative base path of image * * if image resides in /var/www/htdocs/your_site_root/images/img001.jpg * this function will return images/img001.jpg * * @param string $filePath * @return string */ protected function getRelativeFilePath($filePath) { $basePath = Tx_Yag_Domain_FileSystem_Div::getT3BasePath(); if (substr($filePath, 0, strlen($basePath)) == $basePath) { $filePath = substr($filePath, strlen($basePath)); } return $filePath; }
/** * Returns a list of subdirs encoded for filetree widget * * @return string ul/li - encoded subdirectory list */ public function getSubDirsAction() { $encodedFiles = ''; $fileSystemDiv = $this->objectManager->get('Tx_Yag_Domain_FileSystem_Div'); /** @var Tx_Yag_Domain_FileSystem_Div $fileSystemDiv */ $t3basePath = Tx_Yag_Domain_FileSystem_Div::getT3BasePath(); $submittedPath = urldecode(GeneralUtility::_POST('dir')); if ($submittedPath) { $pathToBeScanned = $t3basePath . $submittedPath; $files = $fileSystemDiv->getBackendAccessibleDirectoryEntries($pathToBeScanned); if (count($files)) { // All dirs foreach ($files as $file) { if (is_dir($pathToBeScanned . $file)) { $encodedFiles .= "<li class=\"directory collapsed\"><a href=\"#\" rel=\"" . $submittedPath . $file . "/\">" . $file . "</a></li>"; } } foreach ($files as $file) { if (!is_dir($pathToBeScanned . $file)) { $ext = preg_replace('/^.*\\./', '', $file); $encodedFiles .= "<li class=\"file ext_{$ext}\"><a href=\"#\" rel=\"" . htmlentities($submittedPath . $file) . "\">" . htmlentities($file) . "</a></li>"; } } } } else { $mountDirs = $fileSystemDiv->getBackendFileMountPaths(); // All dirs foreach ($mountDirs as $directory) { $directory = substr($directory, -1, 1) == '/' ? substr($directory, 0, -1) : $directory; $directory = str_replace($t3basePath, '', $directory); if (is_dir($t3basePath . $directory)) { $encodedFiles .= "<li class=\"directory collapsed\"><a href=\"#\" rel=\"" . $directory . "/\">" . basename($directory) . "</a></li>"; } } } $encodedFiles = "<ul class=\"jqueryFileTree\" style=\"display: none;\">" . $encodedFiles . "</ul>"; $this->returnDataAndShutDown($encodedFiles); }
/** * Removes resolution file cache object and file from filesystem * * @param Tx_Yag_Domain_Model_ResolutionFileCache $resolutionFileCache */ public function remove($resolutionFileCache) { $cacheFilePath = Tx_Yag_Domain_FileSystem_Div::getT3BasePath() . $resolutionFileCache->getPath(); if (file_exists($cacheFilePath)) { unlink(Tx_Yag_Domain_FileSystem_Div::getT3BasePath() . $resolutionFileCache->getPath()); parent::remove($resolutionFileCache); } }