Project

General

Profile

Bug #20306 » uploader_cleanup_v2.patch

Administrator Admin, 2009-04-12 21:46

View differences:

typo3/file_list.php (Arbeitskopie)
unset($MCONF);
require ('mod/file/list/conf.php');
require ('init.php');
require ('template.php');
require('mod/file/list/conf.php');
require('init.php');
require('template.php');
$LANG->includeLLFile('EXT:lang/locallang_mod_file_list.xml');
require_once (PATH_t3lib.'class.t3lib_basicfilefunc.php');
require_once (PATH_t3lib.'class.t3lib_extfilefunc.php');
require_once (PATH_t3lib.'class.t3lib_recordlist.php');
require_once (PATH_t3lib.'class.t3lib_clipboard.php');
require_once (PATH_t3lib.'class.t3lib_parsehtml.php');
require_once ('class.file_list.inc');
$BE_USER->modAccess($MCONF,1);
require_once(PATH_t3lib . 'class.t3lib_basicfilefunc.php');
require_once(PATH_t3lib . 'class.t3lib_extfilefunc.php');
require_once(PATH_t3lib . 'class.t3lib_recordlist.php');
require_once(PATH_t3lib . 'class.t3lib_clipboard.php');
require_once(PATH_t3lib . 'class.t3lib_parsehtml.php');
require_once('class.file_list.inc');
$BE_USER->modAccess($MCONF, 1);
......
* @subpackage core
*/
class SC_file_list {
var $MCONF=array(); // Module configuration
var $MOD_MENU=array();
var $MOD_SETTINGS=array();
var $MCONF = array(); // Module configuration
var $MOD_MENU = array();
var $MOD_SETTINGS = array();
// Internal:
......
*
* @return void
*/
function init() {
global $TYPO3_CONF_VARS,$FILEMOUNTS;
function init() {
// Setting GPvars:
$this->id = t3lib_div::_GP('id');
$this->pointer = t3lib_div::_GP('pointer');
......
// File operation object:
$this->basicFF = t3lib_div::makeInstance('t3lib_basicFileFunctions');
$this->basicFF->init($FILEMOUNTS,$TYPO3_CONF_VARS['BE']['fileExtensions']);
$this->basicFF->init($GLOBALS['FILEMOUNTS'], $GLOBALS['TYPO3_CONF_VARS']['BE']['fileExtensions']);
// Configure the "menu" - which is used internally to save the values of sorting, displayThumbs etc.
$this->menuConfig();
......
*
* @return void
*/
function menuConfig() {
function menuConfig() {
// MENU-ITEMS:
// If array, then it's a selector box menu
// If empty string it's just a variable, that'll be saved.
......
*
* @return void
*/
function main() {
global $BE_USER,$LANG,$BACK_PATH,$TYPO3_CONF_VARS,$FILEMOUNTS;
function main() {
// Initialize the template object
$this->doc = t3lib_div::makeInstance('template');
$this->doc->backPath = $BACK_PATH;
$this->doc->backPath = $GLOBALS['BACK_PATH'];
$this->doc->setModuleTemplate('templates/file_list.html');
// Validating the input "id" (the path, directory!) and checking it against the mounts of the user.
$this->id = $this->basicFF->is_directory($this->id);
$access = $this->id && $this->basicFF->checkPathAgainstMounts($this->id.'/');
$access = $this->id && $this->basicFF->checkPathAgainstMounts($this->id . '/');
// There there was access to this file path, continue, make the list
if ($access) {
if ($access) {
// Create filelisting object
$this->filelist = t3lib_div::makeInstance('fileList');
$this->filelist->backPath = $BACK_PATH;
$this->filelist->thumbs = $this->MOD_SETTINGS['displayThumbs']?1:$BE_USER->uc['thumbnailsByDefault'];
$this->filelist->backPath = $GLOBALS['BACK_PATH'];
$this->filelist->thumbs = ($this->MOD_SETTINGS['displayThumbs'] ? 1 : $GLOBALS['BE_USER']->uc['thumbnailsByDefault']);
// Create clipboard object and initialize that
$this->filelist->clipObj = t3lib_div::makeInstance('t3lib_clipboard');
$this->filelist->clipObj->fileMode=1;
$this->filelist->clipObj->fileMode = 1;
$this->filelist->clipObj->initializeClipboard();
$CB = t3lib_div::_GET('CB');
if ($this->cmd=='setCB') $CB['el'] = $this->filelist->clipObj->cleanUpCBC(array_merge(t3lib_div::_POST('CBH'),t3lib_div::_POST('CBC')),'_FILE');
if (!$this->MOD_SETTINGS['clipBoard']) $CB['setP']='normal';
if ($this->cmd == 'setCB') {
$CB['el'] = $this->filelist->clipObj->cleanUpCBC(array_merge(t3lib_div::_POST('CBH'), t3lib_div::_POST('CBC')), '_FILE');
}
if (!$this->MOD_SETTINGS['clipBoard']) {
$CB['setP'] = 'normal';
}
$this->filelist->clipObj->setCmd($CB);
$this->filelist->clipObj->cleanCurrent();
$this->filelist->clipObj->endClipboard(); // Saves
// Saves the clipboard
$this->filelist->clipObj->endClipboard();
// If the "cmd" was to delete files from the list (clipboard thing), do that:
if ($this->cmd=='delete') {
if ($this->cmd == 'delete') {
$items = $this->filelist->clipObj->cleanUpCBC(t3lib_div::_POST('CBC'),'_FILE',1);
if (count($items)) {
if (count($items)) {
// Make command array:
$FILE=array();
reset($items);
while(list(,$v)=each($items)) {
$FILE['delete'][]=array('data'=>$v);
$FILE = array();
foreach ($items as $item) {
$FILE['delete'][] = array('data' => $item);
}
// Init file processing object for deleting and pass the cmd array.
$fileProcessor = t3lib_div::makeInstance('t3lib_extFileFunctions');
$fileProcessor->init($FILEMOUNTS, $TYPO3_CONF_VARS['BE']['fileExtensions']);
$fileProcessor->init($GLOBALS['FILEMOUNTS'], $GLOBALS['TYPO3_CONF_VARS']['BE']['fileExtensions']);
$fileProcessor->init_actionPerms($GLOBALS['BE_USER']->getFileoperationPermissions());
$fileProcessor->dontCheckForUnique = $this->overwriteExistingFiles ? 1 : 0;
$fileProcessor->start($FILE);
......
}
}
if (!isset($this->MOD_SETTINGS['sort'])) {
// Set default sorting
// Set default sorting
if (!isset($this->MOD_SETTINGS['sort'])) {
$this->MOD_SETTINGS['sort'] = 'file';
$this->MOD_SETTINGS['reverse'] = 0;
}
......
$this->filelist->writeBottom();
// Set top JavaScript:
$this->doc->JScode=$this->doc->wrapScriptTags('
$this->doc->JScodeArray[] = '
if (top.fsMod) top.fsMod.recentIds["file"] = unescape("' . rawurlencode($this->id) . '");
function jumpToUrl(URL) {
window.location.href = URL;
}
';
if (top.fsMod) top.fsMod.recentIds["file"] = unescape("'.rawurlencode($this->id).'");
function jumpToUrl(URL) { //
window.location.href = URL;
}
// ... and add clipboard JavaScript functions
$this->doc->JScodeArray[] = $this->filelist->CBfunctions();
'.$this->filelist->CBfunctions() // ... and add clipboard JavaScript functions
);
// This will return content necessary for the context sensitive clickmenus to work: bodytag events, JavaScript functions and DIV-layers.
$this->doc->getContextMenuCode();
......
$docHeaderButtons = array_merge($this->getButtons(), $buttons);
// Build the <body> for the module
$this->content = $this->doc->startPage($LANG->getLL('files'));
$this->content = $this->doc->startPage($GLOBALS['LANG']->getLL('files'));
// Create output
$pageContent='';
$pageContent.= '<form action="'.htmlspecialchars($this->filelist->listURL()).'" method="post" name="dblistForm">';
$pageContent.= $this->filelist->HTMLcode;
$pageContent.= '<input type="hidden" name="cmd" /></form>';
$pageContent = '';
$pageContent .= '<form action="'.htmlspecialchars($this->filelist->listURL()).'" method="post" name="dblistForm">';
$pageContent .= $this->filelist->HTMLcode;
$pageContent .= '<input type="hidden" name="cmd" /></form>';
if ($this->filelist->HTMLcode) { // Making listing options:
// Making listing options:
if ($this->filelist->HTMLcode) {
$pageContent.='
<!--
......
';
// Add "display thumbnails" checkbox:
$pageContent.=t3lib_BEfunc::getFuncCheck($this->id,'SET[displayThumbs]',$this->MOD_SETTINGS['displayThumbs'],'file_list.php','','id="checkDisplayThumbs"').' <label for="checkDisplayThumbs">'.$LANG->getLL('displayThumbs',1).'</label><br />';
$pageContent .= t3lib_BEfunc::getFuncCheck($this->id, 'SET[displayThumbs]', $this->MOD_SETTINGS['displayThumbs'], 'file_list.php', '', 'id="checkDisplayThumbs"') . ' <label for="checkDisplayThumbs">' . $GLOBALS['LANG']->getLL('displayThumbs', 1) . '</label><br />';
// Add clipboard button
$pageContent.=t3lib_BEfunc::getFuncCheck($this->id,'SET[clipBoard]',$this->MOD_SETTINGS['clipBoard'],'file_list.php','','id="checkClipBoard"').' <label for="checkClipBoard">'.$LANG->getLL('clipBoard',1).'</label>';
$pageContent.=t3lib_BEfunc::getFuncCheck($this->id, 'SET[clipBoard]', $this->MOD_SETTINGS['clipBoard'], 'file_list.php', '', 'id="checkClipBoard"') . ' <label for="checkClipBoard">' . $GLOBALS['LANG']->getLL('clipBoard', 1) . '</label>';
$pageContent.='
</div>
';
// Set clipboard:
if ($this->MOD_SETTINGS['clipBoard']) {
$pageContent.=$this->filelist->clipObj->printClipboard();
$pageContent.= t3lib_BEfunc::cshItem('xMOD_csh_corebe', 'filelist_clipboard', $GLOBALS['BACK_PATH']);
if ($this->MOD_SETTINGS['clipBoard']) {
$pageContent .= $this->filelist->clipObj->printClipboard();
$pageContent .= t3lib_BEfunc::cshItem('xMOD_csh_corebe', 'filelist_clipboard', $GLOBALS['BACK_PATH']);
}
}
$markerArray = array(
'CSH' => $docHeaderButtons['csh'],
'CSH' => $docHeaderButtons['csh'],
'FUNC_MENU' => t3lib_BEfunc::getFuncMenu($this->id, 'SET[function]', $this->MOD_SETTINGS['function'], $this->MOD_MENU['function']),
'CONTENT' => $pageContent
'CONTENT' => $pageContent
);
$this->content.= $this->doc->moduleBody(array(), $docHeaderButtons, array_merge($markerArray, $otherMarkers));
$this->content.= $this->doc->endPage();
$this->content = $this->doc->insertStylesAndJS($this->content);
$this->content .= $this->doc->moduleBody(array(), $docHeaderButtons, array_merge($markerArray, $otherMarkers));
$this->content .= $this->doc->endPage();
$this->content = $this->doc->insertStylesAndJS($this->content);
} else {
// Create output - no access (no warning though)
$this->content = '';
$this->content .= $this->doc->startPage($LANG->getLL('files'));
$this->content = '';
$this->content .= $this->doc->startPage($GLOBALS['LANG']->getLL('files'));
$this->content .= $this->doc->endPage();
$this->content = $this->doc->insertStylesAndJS($this->content);
$this->content = $this->doc->insertStylesAndJS($this->content);
}
......
*
* @return void
*/
function printContent() {
function printContent() {
echo $this->content;
}
......
*
* @return array all available buttons as an assoc. array
*/
function getButtons() {
global $TCA, $LANG, $BACK_PATH, $BE_USER;
function getButtons() {
$buttons = array(
'csh' => '',
'csh' => '',
'shortcut' => '',
'upload' => '',
'new' => '',
'upload' => '',
'new' => '',
);
// Add shortcut
if ($BE_USER->mayMakeShortcut()) {
$buttons['shortcut'] = $this->doc->makeShortcutIcon('pointer,id,target,table',implode(',',array_keys($this->MOD_MENU)),$this->MCONF['name']);
if ($GLOBALS['BE_USER']->mayMakeShortcut()) {
$buttons['shortcut'] = $this->doc->makeShortcutIcon('pointer,id,target,table', implode(',', array_keys($this->MOD_MENU)), $this->MCONF['name']);
}
// FileList Module CSH:
$buttons['csh'] = t3lib_BEfunc::cshItem('xMOD_csh_corebe', 'filelist_module', $GLOBALS['BACK_PATH'], '', TRUE);
$buttons['csh'] = t3lib_BEfunc::cshItem('xMOD_csh_corebe', 'filelist_module', $GLOBALS['BACK_PATH'], '', true);
// upload button
$theIcon = '<img'.t3lib_iconWorks::skinImg($this->backPath,'gfx/upload.gif','width="18" height="16"').' title="'.$GLOBALS['LANG']->makeEntities($GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:cm.upload',1)).'" alt="" />';
$buttons['upload'] = '<a href="'.$BACK_PATH.'file_upload.php?target='.rawurlencode($this->id).'&returnUrl='.rawurlencode($this->filelist->listURL()).'">'.$theIcon.'</a>';
$theIcon = '<img' . t3lib_iconWorks::skinImg($this->backPath, 'gfx/upload.gif', 'width="18" height="16"') . ' title="' . $GLOBALS['LANG']->makeEntities($GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:cm.upload', 1)) . '" alt="" />';
$buttons['upload'] = '<a href="' . $GLOBALS['BACK_PATH'] . 'file_upload.php?target=' . rawurlencode($this->id) . '&returnUrl=' . rawurlencode($this->filelist->listURL()) . '">' . $theIcon . '</a>';
$theIcon = '<img'.t3lib_iconWorks::skinImg($this->backPath,'gfx/new_file.gif','width="18" height="16"').' title="'.$GLOBALS['LANG']->makeEntities($GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:cm.new',1)).'" alt="" />';
$buttons['new'] = '<a href="'.$BACK_PATH.'file_newfolder.php?target='.rawurlencode($this->id).'&returnUrl='.rawurlencode($this->filelist->listURL()).'">'.$theIcon.'</a>';
// new file button
$theIcon = '<img' . t3lib_iconWorks::skinImg($this->backPath, 'gfx/new_file.gif', 'width="18" height="16"') . ' title="' . $GLOBALS['LANG']->makeEntities($GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:cm.new', 1)) . '" alt="" />';
$buttons['new'] = '<a href="' . $GLOBALS['BACK_PATH'] . 'file_newfolder.php?target='.rawurlencode($this->id) . '&returnUrl='.rawurlencode($this->filelist->listURL()) . '">' . $theIcon . '</a>';
return $buttons;
}
......
}
if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['typo3/file_list.php']) {
if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['typo3/file_list.php']) {
include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['typo3/file_list.php']);
}
......
$SOBE->main();
$SOBE->printContent();
?>
?>
typo3/css/backend-style.css (Arbeitskopie)
- - - - - - - - - - - - - - - - - - - - - */
/* ----- Basics ----- */
#typo3-backend {
......
padding: 1px;
}
(1-1/2)