/** * 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'); }
/** * Runs actual import. Unpacks zip file to a directory and * runs directory importer to actually import the files contained * in zip file. */ public function runImport() { // Unpack zip file $tempDir = Tx_Yag_Domain_FileSystem_Div::tempdir(sys_get_temp_dir(), 'yag_zip_extraction'); $this->unzipArchive($this->zipFilename, $tempDir); // Initialize directory crawler on extracted file's directory and run import $directoryImporter = Tx_Yag_Domain_Import_DirectoryImporter_ImporterBuilder::getInstance()->getInstanceByDirectoryAndAlbum($tempDir, $this->album); $directoryImporter->setMoveFilesToOrigsDirectoryToTrue(); // Files will be moved to origs directory before they are processed $directoryImporter->setCrawlRecursive(TRUE); $directoryImporter->runImport(); $this->itemsImported = $directoryImporter->getItemsImported(); }