/**
  * 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;
 }
Exemple #3
0
 /**
  * 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);
     }
 }