00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00055 require ('init.php');
00056 require ('template.php');
00057 require_once (PATH_t3lib.'class.t3lib_basicfilefunc.php');
00058 require_once (PATH_t3lib.'class.t3lib_extfilefunc.php');
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00077 class SC_tce_file {
00078
00079
00080 var $file;
00081 var $redirect;
00082 var $CB;
00083 var $overwriteExistingFiles;
00084 var $vC;
00085
00086
00087 var $include_once=array();
00088 var $fileProcessor;
00089
00090
00091
00097 function init() {
00098
00099
00100 $this->file = t3lib_div::_GP('file');
00101 $this->redirect = t3lib_div::_GP('redirect');
00102 $this->CB = t3lib_div::_GP('CB');
00103 $this->overwriteExistingFiles = t3lib_div::_GP('overwriteExistingFiles');
00104 $this->vC = t3lib_div::_GP('vC');
00105
00106
00107 if (is_array($this->CB)) {
00108 $this->include_once[] = PATH_t3lib.'class.t3lib_clipboard.php';
00109 }
00110 }
00111
00117 function initClipboard() {
00118 if (is_array($this->CB)) {
00119 $clipObj = t3lib_div::makeInstance('t3lib_clipboard');
00120 $clipObj->initializeClipboard();
00121 if ($this->CB['paste']) {
00122 $clipObj->setCurrentPad($this->CB['pad']);
00123 $this->file = $clipObj->makePasteCmdArray_file($this->CB['paste'],$this->file);
00124 }
00125 if ($this->CB['delete']) {
00126 $clipObj->setCurrentPad($this->CB['pad']);
00127 $this->file = $clipObj->makeDeleteCmdArray_file($this->file);
00128 }
00129 }
00130 }
00131
00138 function main() {
00139 global $FILEMOUNTS,$TYPO3_CONF_VARS,$BE_USER;
00140
00141
00142 $this->fileProcessor = t3lib_div::makeInstance('t3lib_extFileFunctions');
00143 $this->fileProcessor->init($FILEMOUNTS, $TYPO3_CONF_VARS['BE']['fileExtensions']);
00144 $this->fileProcessor->init_actionPerms($BE_USER->user['fileoper_perms']);
00145 $this->fileProcessor->dontCheckForUnique = $this->overwriteExistingFiles ? 1 : 0;
00146
00147
00148 $refInfo = parse_url(t3lib_div::getIndpEnv('HTTP_REFERER'));
00149 $httpHost = t3lib_div::getIndpEnv('TYPO3_HOST_ONLY');
00150 if ($httpHost!=$refInfo['host'] && $this->vC!=$BE_USER->veriCode() && !$TYPO3_CONF_VARS['SYS']['doNotCheckReferer']) {
00151 $this->fileProcessor->writeLog(0,2,1,'Referer host "%s" and server host "%s" did not match!',array($refInfo['host'],$httpHost));
00152 } else {
00153 $this->fileProcessor->start($this->file);
00154 $this->fileProcessor->processData();
00155 }
00156 }
00157
00164 function finish() {
00165
00166 $this->fileProcessor->printLogErrorMessages($this->redirect);
00167
00168 t3lib_BEfunc::getSetUpdateSignal('updateFolderTree');
00169 if ($this->redirect) {
00170 Header('Location: '.t3lib_div::locationHeaderUrl($this->redirect));
00171 }
00172 }
00173 }
00174
00175
00176 if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['typo3/tce_file.php']) {
00177 include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['typo3/tce_file.php']);
00178 }
00179
00180
00181
00182
00183
00184
00185
00186
00187
00188
00189
00190
00191
00192 $SOBE = t3lib_div::makeInstance('SC_tce_file');
00193 $SOBE->init();
00194
00195
00196 foreach($SOBE->include_once as $INC_FILE) include_once($INC_FILE);
00197
00198 $SOBE->initClipboard();
00199 $SOBE->main();
00200 $SOBE->finish();
00201 ?>