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
00052 unset($MCONF);
00053 require ('mod/file/list/conf.php');
00054 require ('init.php');
00055 require ('template.php');
00056 $LANG->includeLLFile('EXT:lang/locallang_mod_file_list.xml');
00057 require_once (PATH_t3lib.'class.t3lib_basicfilefunc.php');
00058 require_once (PATH_t3lib.'class.t3lib_extfilefunc.php');
00059 require_once (PATH_t3lib.'class.t3lib_recordlist.php');
00060 require_once (PATH_t3lib.'class.t3lib_clipboard.php');
00061 require_once ('class.file_list.inc');
00062 $BE_USER->modAccess($MCONF,1);
00063
00064
00065
00066
00067
00068
00069
00077 class SC_file_list {
00078 var $MCONF=array();
00079 var $MOD_MENU=array();
00080 var $MOD_SETTINGS=array();
00081
00082
00083
00084 var $content;
00085 var $basicFF;
00086 var $doc;
00087
00088
00089 var $id;
00090 var $pointer;
00091 var $table;
00092 var $imagemode;
00093 var $cmd;
00094 var $overwriteExistingFiles;
00095
00096
00103 function init() {
00104 global $TYPO3_CONF_VARS,$FILEMOUNTS;
00105
00106
00107 $this->id = t3lib_div::_GP('id');
00108 $this->pointer = t3lib_div::_GP('pointer');
00109 $this->table = t3lib_div::_GP('table');
00110 $this->imagemode = t3lib_div::_GP('imagemode');
00111 $this->cmd = t3lib_div::_GP('cmd');
00112 $this->overwriteExistingFiles = t3lib_div::_GP('overwriteExistingFiles');
00113
00114
00115 $this->MCONF = $GLOBALS['MCONF'];
00116
00117
00118 $this->basicFF = t3lib_div::makeInstance('t3lib_basicFileFunctions');
00119 $this->basicFF->init($FILEMOUNTS,$TYPO3_CONF_VARS['BE']['fileExtensions']);
00120
00121
00122 $this->menuConfig();
00123 }
00124
00130 function menuConfig() {
00131
00132
00133
00134
00135 $this->MOD_MENU = array(
00136 'sort' => '',
00137 'reverse' => '',
00138 'displayThumbs' => '',
00139 'clipBoard' => ''
00140 );
00141
00142
00143 $this->MOD_SETTINGS = t3lib_BEfunc::getModuleData($this->MOD_MENU, t3lib_div::_GP('SET'), $this->MCONF['name']);
00144 }
00145
00151 function main() {
00152 global $BE_USER,$LANG,$BACK_PATH,$TYPO3_CONF_VARS,$FILEMOUNTS;
00153
00154
00155 $this->doc = t3lib_div::makeInstance('template');
00156 $this->doc->backPath = $BACK_PATH;
00157 $this->doc->docType = 'xhtml_trans';
00158
00159
00160 $this->id = $this->basicFF->is_directory($this->id);
00161 $access = $this->id && $this->basicFF->checkPathAgainstMounts($this->id.'/');
00162
00163
00164 if ($access) {
00165
00166
00167 $filelist = t3lib_div::makeInstance('fileList');
00168 $filelist->backPath = $BACK_PATH;
00169 $filelist->thumbs = $this->MOD_SETTINGS['displayThumbs']?1:$BE_USER->uc['thumbnailsByDefault'];
00170
00171
00172 $filelist->clipObj = t3lib_div::makeInstance('t3lib_clipboard');
00173 $filelist->clipObj->fileMode=1;
00174 $filelist->clipObj->initializeClipboard();
00175
00176 $CB = t3lib_div::_GET('CB');
00177 if ($this->cmd=='setCB') $CB['el'] = $filelist->clipObj->cleanUpCBC(array_merge(t3lib_div::_POST('CBH'),t3lib_div::_POST('CBC')),'_FILE');
00178 if (!$this->MOD_SETTINGS['clipBoard']) $CB['setP']='normal';
00179 $filelist->clipObj->setCmd($CB);
00180 $filelist->clipObj->cleanCurrent();
00181 $filelist->clipObj->endClipboard();
00182
00183
00184 if ($this->cmd=='delete') {
00185 $items = $filelist->clipObj->cleanUpCBC(t3lib_div::_POST('CBC'),'_FILE',1);
00186 if (count($items)) {
00187
00188 $FILE=array();
00189 reset($items);
00190 while(list(,$v)=each($items)) {
00191 $FILE['delete'][]=array('data'=>$v);
00192 }
00193
00194
00195 $fileProcessor = t3lib_div::makeInstance('t3lib_extFileFunctions');
00196 $fileProcessor->init($FILEMOUNTS, $TYPO3_CONF_VARS['BE']['fileExtensions']);
00197 $fileProcessor->init_actionPerms($BE_USER->user['fileoper_perms']);
00198 $fileProcessor->dontCheckForUnique = $this->overwriteExistingFiles ? 1 : 0;
00199 $fileProcessor->start($FILE);
00200 $fileProcessor->processData();
00201
00202 $fileProcessor->printLogErrorMessages();
00203 }
00204 }
00205
00206
00207 $this->pointer = t3lib_div::intInRange($this->pointer,0,100000);
00208 $filelist->start($this->id,$this->pointer,$this->MOD_SETTINGS['sort'],$this->MOD_SETTINGS['reverse'],$this->MOD_SETTINGS['clipBoard']);
00209
00210
00211 $filelist->writeTop($this->id);
00212
00213
00214 $filelist->generateList($this->id,$this->table);
00215
00216
00217 $filelist->writeBottom();
00218
00219
00220 $this->doc->JScode=$this->doc->wrapScriptTags('
00221
00222 if (top.fsMod) top.fsMod.recentIds["file"] = unescape("'.rawurlencode($this->id).'");
00223 function jumpToUrl(URL) {
00224 document.location = URL;
00225 }
00226
00227 '.$filelist->CBfunctions()
00228 );
00229
00230
00231 $CMparts=$this->doc->getContextMenuCode();
00232 $this->doc->bodyTagAdditions = $CMparts[1];
00233 $this->doc->JScode.=$CMparts[0];
00234 $this->doc->postCode.= $CMparts[2];
00235
00236
00237
00238 $this->content='';
00239 $this->content.=$this->doc->startPage($LANG->getLL('files'));
00240 $this->content.= '<form action="'.htmlspecialchars($filelist->listURL()).'" method="post" name="dblistForm">';
00241 $this->content.= $filelist->HTMLcode;
00242 $this->content.= '<input type="hidden" name="cmd" /></form>';
00243
00244
00245 $this->content.= t3lib_BEfunc::cshItem('xMOD_csh_corebe', 'filelist_module', $GLOBALS['BACK_PATH'],'<br/>|');
00246
00247 if ($filelist->HTMLcode) {
00248
00249 $this->content.='
00250
00251 <!--
00252 Listing options for clipboard and thumbnails
00253 -->
00254 <div id="typo3-listOptions">
00255 ';
00256
00257
00258 $this->content.=t3lib_BEfunc::getFuncCheck($this->id,'SET[displayThumbs]',$this->MOD_SETTINGS['displayThumbs'],'file_list.php','').' '.$LANG->getLL('displayThumbs',1).'<br />';
00259
00260
00261 $this->content.=t3lib_BEfunc::getFuncCheck($this->id,'SET[clipBoard]',$this->MOD_SETTINGS['clipBoard'],'file_list.php','').' '.$LANG->getLL('clipBoard',1);
00262
00263 $this->content.='
00264 </div>
00265 ';
00266 $this->content.= t3lib_BEfunc::cshItem('xMOD_csh_corebe', 'filelist_options', $GLOBALS['BACK_PATH']);
00267
00268
00269
00270 if ($this->MOD_SETTINGS['clipBoard']) {
00271 $this->content.=$filelist->clipObj->printClipboard();
00272 $this->content.= t3lib_BEfunc::cshItem('xMOD_csh_corebe', 'filelist_clipboard', $GLOBALS['BACK_PATH']);
00273 }
00274 }
00275
00276
00277 if ($BE_USER->mayMakeShortcut()) {
00278 $this->content.='<br /><br />'.$this->doc->makeShortcutIcon('pointer,id,target,table',implode(',',array_keys($this->MOD_MENU)),$this->MCONF['name']);
00279 }
00280 } else {
00281
00282 $this->content='';
00283 $this->content.=$this->doc->startPage($LANG->getLL('files'));
00284 }
00285
00286
00287 $this->content.= $this->doc->endPage();
00288 }
00289
00295 function printContent() {
00296
00297 echo $this->content;
00298 }
00299 }
00300
00301
00302 if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['typo3/file_list.php']) {
00303 include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['typo3/file_list.php']);
00304 }
00305
00306
00307
00308
00309
00310
00311
00312
00313
00314
00315
00316
00317
00318 $SOBE = t3lib_div::makeInstance('SC_file_list');
00319 $SOBE->init();
00320 $SOBE->main();
00321 $SOBE->printContent();
00322
00323
00324 if ($TYPO3_CONF_VARS['BE']['compressionLevel']) {
00325 new gzip_encode($TYPO3_CONF_VARS['BE']['compressionLevel']);
00326 }
00327 ?>