/** * delete file when record is deleted */ function processCmdmap_preProcess($command, $table, $id, $value, $tce) { global $FILEMOUNTS, $BE_USER, $TYPO3_CONF_VARS; if ($table === 'tx_dam') { if ($rows = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('*', 'tx_dam', 'uid=' . $id, '', '', 1, 'uid')) { $row = $rows[$id]; switch ($command) { // delete the file when the record is deleted case 'delete': require_once PATH_t3lib . 'class.t3lib_basicfilefunc.php'; require_once PATH_t3lib . 'class.t3lib_extfilefunc.php'; $filepath = tx_dam::file_absolutePath($row); if (@is_file($filepath)) { $cmd = array(); $cmd['delete'][0]['data'] = $filepath; // Initializing: $tce->fileProcessor = t3lib_div::makeInstance('t3lib_extFileFunctions'); $tce->fileProcessor->init($FILEMOUNTS, $TYPO3_CONF_VARS['BE']['fileExtensions']); $tce->fileProcessor->init_actionPerms(tx_dam::getFileoperationPermissions()); $tce->fileProcessor->dontCheckForUnique = $tce->overwriteExistingFiles ? 1 : 0; // Checking referer / executing: $refInfo = parse_url(t3lib_div::getIndpEnv('HTTP_REFERER')); $httpHost = t3lib_div::getIndpEnv('TYPO3_HOST_ONLY'); if ($httpHost != $refInfo['host'] && $tce->vC != $BE_USER->veriCode() && !$TYPO3_CONF_VARS['SYS']['doNotCheckReferer']) { $tce->fileProcessor->writeLog(0, 2, 1, 'Referer host "%s" and server host "%s" did not match!', array($refInfo['host'], $httpHost)); } else { $tce->fileProcessor->start($cmd); $tce->fileProcessor->processData(); } } break; default: break; } } } }
/** * Registering Incoming data * * @param array $file: Command map. Default: t3lib_div::_GP('file') * @return string $this->error */ function init($file = '') { global $FILEMOUNTS, $TYPO3_CONF_VARS, $BE_USER; // GP vars: $this->file = is_array($file) ? $file : t3lib_div::_GP('file'); $this->overwriteExistingFiles = t3lib_div::_GP('overwriteExistingFiles'); // Initializing: # $this->fileProcessor = t3lib_div::makeInstance('t3lib_extFileFunctions'); $this->fileProcessor = t3lib_div::makeInstance('tx_dam_extFileFunctions'); $this->fileProcessor->init($FILEMOUNTS, $TYPO3_CONF_VARS['BE']['fileExtensions']); $this->fileProcessor->init_actionPerms(tx_dam::getFileoperationPermissions()); $this->fileProcessor->dontCheckForUnique = $this->overwriteExistingFiles ? 1 : 0; return $this->error; }