Index: trunk/admin/editor/cmseditor/editor/filemanager/browser/default/browser.html =================================================================== diff -u -N -r1455 -r4936 --- trunk/admin/editor/cmseditor/editor/filemanager/browser/default/browser.html (.../browser.html) (revision 1455) +++ trunk/admin/editor/cmseditor/editor/filemanager/browser/default/browser.html (.../browser.html) (revision 4936) @@ -66,7 +66,7 @@ if ( params ) sUrl += '&' + params ; var oXML = new FCKXml() ; - + //alert(sUrl); if ( callBackFunction ) oXML.LoadUrl( sUrl, callBackFunction ) ; // Asynchronous load. else @@ -101,12 +101,12 @@ - - + + - - - + + + Index: trunk/admin/editor/cmseditor/editor/filemanager/browser/default/connectors/php/commands.php =================================================================== diff -u -N -r4699 -r4936 --- trunk/admin/editor/cmseditor/editor/filemanager/browser/default/connectors/php/commands.php (.../commands.php) (revision 4699) +++ trunk/admin/editor/cmseditor/editor/filemanager/browser/default/connectors/php/commands.php (.../commands.php) (revision 4936) @@ -213,9 +213,21 @@ '; */ -function GetFoldersAndFiles( $resourceType, $currentFolder ) +function GetConfigValue($var) { + $conn = GetADODbConnection(); + $query = "SELECT `value` FROM config WHERE `name` = '".$var."'"; + return $conn->GetOne($query); +} + +function GetFoldersAndFiles( $resourceType, $currentFolder, $aParams = array('name','asc')) +{ // Map the virtual path to the local server path. + if (isset($Config['K4Mode'])) + $date_format = "m/d/Y h:i A"; + else + $date_format = GetConfigValue('date_format').' '.GetConfigValue('time_format'); + $sServerDir = ServerMapFolder( $resourceType, $currentFolder ) ; // Initialize the output buffers for "Folders" and "Files". $aFolders = array(); @@ -240,23 +252,55 @@ $aFileSizes[] = ($size < 1)? 1:$size;// round( $iFileSize / 1024 ) ; } else $aFileSizes[] = $iFileSize; - $aFiles[] = $sFile; + $aFiles[] = $sFile; + $aFileDate[] = filectime($sServerDir.$sFile); //$sFiles .= '' ; } } } if (count($aFolders) > 0) { natcasesort($aFolders); + switch ($aParams[1]) + { + case 'desc' : + $aFolders = array_reverse($aFolders, true); + break ; + } foreach($aFolders AS $k=>$v) { $sFolders .= '' ; } } - if (count($sFiles) > 0) { - natcasesort($aFiles); - foreach($aFiles AS $fk=>$fv) { - $sFiles .= '' ; + if (count($aFiles) > 0) { + if ($aParams[0] == 'name') + { + natcasesort($aFiles); + if ($aParams[1] == 'desc') + { + $aFiles = array_reverse($aFiles, true); + } + foreach($aFiles AS $fk=>$fv) { + $sFiles .= '' ; + } + }elseif ($aParams[0] == 'size') { + natcasesort($aFileSizes); + if ($aParams[1] == 'desc') + { + $aFileSizes = array_reverse($aFileSizes, true); + } + foreach($aFileSizes AS $fk=>$fv) { + $sFiles .= '' ; + } + } elseif ($aParams[0] == 'date') { + natcasesort($aFileDate); + if ($aParams[1] == 'desc') + { + $aFileDate = array_reverse($aFileDate, true); + } + foreach($aFileDate AS $fk=>$fv) { + $sFiles .= '' ; + } } - } + } /* while ( $sFile = readdir( $oCurrentFolder ) ) { if ( $sFile != '.' && $sFile != '..' && $sFile != 'CVS') @@ -276,13 +320,18 @@ } */ - - echo $sFolders ; - // Close the "Folders" node. - echo '' ; - echo $sFiles ; - // Close the "Files" node. - echo '' ; + if ($aParams[1] == "desc") + { + echo $sFiles ; + echo '' ; + echo $sFolders ; + echo '' ; + } else { + echo $sFolders ; + echo '' ; + echo $sFiles ; + echo '' ; + } } function CreateFolder( $resourceType, $currentFolder ) { @@ -319,6 +368,59 @@ // Create the "Error" node. echo '' ; } + +function UpdateCmsBlocksK3($resourceType,$currentFolder,$file_from,$file_to) +{ global $Config ; + $Config['UserFilesPathNoBase']; + $original_str = $Config['UserFilesPathNoBase'].$resourceType.$currentFolder.addslashes($file_from); + $new_str = $Config['UserFilesPathNoBase'].$resourceType.$currentFolder.addslashes($file_to); + $conn = GetADODbConnection(); + if ( GetConfigValue('multilingual_mode') == 1) { + $query="SELECT lang_prefix FROM lang ORDER BY lang_id"; + $rs = $conn->Execute($query); + while ($rs && !$rs->EOF) { + $sql = "UPDATE live_blocks SET ".$rs->fields['lang_prefix']."_content = replace(".$rs->fields['lang_prefix']."_content,'".$original_str."','".$new_str."')"; + $conn->Execute($sql); + $rs->MoveNext(); + } + } else { + $lang_prefix = GetConfigValue('default_lang_prefix'); + $sql = "UPDATE live_blocks SET ".$lang_prefix."_content = replace(".$lang_prefix."_content,'".$original_str."','".$new_str."')"; + $conn->Execute($sql); + } + +} + +function RenameFile( $resourceType, $currentFolder , $aFilenames = array()) +{ global $Config ; + if (count($aFilenames) == 2) + { + $sServerDir = ServerMapFolder( $resourceType, $currentFolder ) ; + $sExtension = substr( $aFilenames[1], ( strrpos($aFilenames[1], '.') + 1 ) ) ; + $arAllowed = $Config['AllowedExtensions'][$resourceType] ; + $arDenied = $Config['DeniedExtensions'][$resourceType] ; + if (file_exists($sServerDir.$aFilenames[1]) && is_file($sServerDir.$aFilenames[1])) + { + $sErrorNumber = '204' ; + } else { + if ( ( count($arAllowed) == 0 || in_array( $sExtension, $arAllowed ) ) && ( count($arDenied) == 0 || !in_array( $sExtension, $arDenied ) ) ) + { + if (rename($sServerDir.$aFilenames[0],$sServerDir.$aFilenames[1])) { + if (isset($Config['K4Mode'])) { + // Update CMS Blocks + } else + UpdateCmsBlocksK3($resourceType,$currentFolder,$aFilenames[0],$aFilenames[1]); + $sErrorNumber = "0"; + } else + $sErrorNumber = '205' ; + } else + $sErrorNumber = '203' ; + } + $sErrorMsg = ''; + echo '' ; + } +} + function FileUpload( $resourceType, $currentFolder ) { $sErrorNumber = '0' ; @@ -353,7 +455,7 @@ if ( is_file( $sFilePath ) ) { $oldumask = umask(0) ; - chmod( $sFilePath, 0777 ) ; + chmod( $sFilePath, 0666 ) ; umask( $oldumask ) ; } break ; Index: trunk/admin/editor/cmseditor/editor/filemanager/browser/default/frmupload.html =================================================================== diff -u -N -r4863 -r4936 --- trunk/admin/editor/cmseditor/editor/filemanager/browser/default/frmupload.html (.../frmupload.html) (revision 4863) +++ trunk/admin/editor/cmseditor/editor/filemanager/browser/default/frmupload.html (.../frmupload.html) (revision 4936) @@ -48,21 +48,7 @@ return true ; } -function OnUploadCompleted( errorNumber, fileName ) -{ - // Reset the Upload Worker Frame. - window.parent.frames['frmUploadWorker'].location = 'about:blank' ; - - // Reset the upload form (On IE we must do a little trick to avout problems). - if ( document.all ) - document.getElementById('NewFile').outerHTML = '' ; - else - document.getElementById('frmUpload').reset() ; - - // Reset the interface elements. - document.getElementById('eUploadMessage').innerHTML = 'Upload a new file in this folder' ; - document.getElementById('btnUpload').disabled = false ; - +function outputErrorMsg(errorNumber, fileName) { switch ( errorNumber ) { case 0 : @@ -75,12 +61,35 @@ case 202 : alert( 'Invalid file' ) ; break ; + case 203 : + alert( 'Invalid file type for this foder' ) ; + break ; + case 204 : + alert( 'A file with the same name is already available' ) ; + break ; default : alert( 'Error on file upload. Error number: ' + errorNumber ) ; break ; } } +function OnUploadCompleted( errorNumber, fileName ) +{ + // Reset the Upload Worker Frame. + window.parent.frames['frmUploadWorker'].location = 'about:blank' ; + + // Reset the upload form (On IE we must do a little trick to avout problems). + if ( document.all ) + document.getElementById('NewFile').outerHTML = '' ; + else + document.getElementById('frmUpload').reset() ; + + // Reset the interface elements. + document.getElementById('eUploadMessage').innerHTML = 'Upload a new file in this folder' ; + document.getElementById('btnUpload').disabled = false ; + outputErrorMsg(errorNumber); +} + window.onload = function() { window.top.IsLoadedUpload = true ; @@ -101,7 +110,14 @@ } } - +function RenameFile() +{ + filename = window.parent.frames['frmResourcesList'].GetCheckedFileName('first'); + f=prompt('Rename file "'+filename+'"?',filename); + if (f) { + window.parent.frames['frmResourcesList'].RenameFile(filename,f); + } +} @@ -120,7 +136,7 @@ Index: trunk/admin/editor/cmseditor/editor/filemanager/browser/default/connectors/php/connector.php =================================================================== diff -u -N -r4818 -r4936 --- trunk/admin/editor/cmseditor/editor/filemanager/browser/default/connectors/php/connector.php (.../connector.php) (revision 4818) +++ trunk/admin/editor/cmseditor/editor/filemanager/browser/default/connectors/php/connector.php (.../connector.php) (revision 4936) @@ -69,8 +69,17 @@ FileUpload( $sResourceType, $sCurrentFolder ) ; return ; } + if (ereg("^RenameFile_",$sCommand)) { + $aFilenames = explode("|",ereg_replace("^RenameFile_","",$sCommand)); + $sCommand = 'RenameFile'; + } + if (ereg("^GetFoldersAndFiles_",$sCommand)) { + $aParams = split("_",ereg_replace("GetFoldersAndFiles_","",$sCommand)); + $sCommand = 'GetFoldersAndFiles'; + } // Prevent the browser from caching the result. // Date in the past + header('Expires: Mon, 26 Jul 1997 05:00:00 GMT') ; // always modified header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT') ; @@ -83,6 +92,7 @@ header( 'Content-Type:text/xml; charset=utf-8' ) ; CreateXmlHeader( $sCommand, $sResourceType, $sCurrentFolder ) ; // Execute the required command. + switch ( $sCommand ) { case 'GetCmsTree' : @@ -92,11 +102,14 @@ GetFolders( $sResourceType, $sCurrentFolder ) ; break ; case 'GetFoldersAndFiles' : - GetFoldersAndFiles( $sResourceType, $sCurrentFolder ) ; + GetFoldersAndFiles( $sResourceType, $sCurrentFolder, $aParams) ; break ; case 'CreateFolder' : CreateFolder( $sResourceType, $sCurrentFolder ) ; break ; + case 'RenameFile': + RenameFile( $sResourceType, $sCurrentFolder, $aFilenames) ; + break; } CreateXmlFooter() ; exit; Index: trunk/admin/editor/cmseditor/editor/filemanager/browser/default/frmresourceslist.html =================================================================== diff -u -N -r4862 -r4936 --- trunk/admin/editor/cmseditor/editor/filemanager/browser/default/frmresourceslist.html (.../frmresourceslist.html) (revision 4862) +++ trunk/admin/editor/cmseditor/editor/filemanager/browser/default/frmresourceslist.html (.../frmresourceslist.html) (revision 4936) @@ -26,7 +26,8 @@ + +function sortBy(sort_by) +{ + if (sort_by == current_sort_by) + current_sort_order = (current_sort_order == '_asc')?'_desc':'_asc'; + else { + document.getElementById('sort_'+current_sort_by).src = document.getElementById('_no').src; + current_sort_by = sort_by; + current_sort_order = '_asc'; + } + document.getElementById('sort_'+current_sort_by).src = document.getElementById(current_sort_order).src; + //alert('GetFoldersAndFiles_'+current_sort_by+current_sort_order); + LoadResources( oConnector.ResourceType, oConnector.CurrentFolder ) ; +} + +window.onresize = UpdateDivSize; + + - - + +
+
+ + + + + + +
+ + + + + +
 File Name
+
+ + + + + +
 Size
+
+ + + + + +
 Date
+
+ +
+
+ +
+
+
+ + + + +
Index: trunk/admin/editor/cmseditor/editor/filemanager/browser/default/connectors/php/config.php =================================================================== diff -u -N -r4820 -r4936 --- trunk/admin/editor/cmseditor/editor/filemanager/browser/default/connectors/php/config.php (.../config.php) (revision 4820) +++ trunk/admin/editor/cmseditor/editor/filemanager/browser/default/connectors/php/config.php (.../config.php) (revision 4936) @@ -29,6 +29,7 @@ define('FULL_PATH', K3_FULL_PATH); define('BASE_PATH', K3_BASE_PATH); include_once($kernel3_config); + $Config['UserFilesPathNoBase'] = '/templates/UserFiles/' ; $Config['UserFilesPath'] = BASE_PATH.'/templates/UserFiles/' ; } else { Index: trunk/admin/editor/cmseditor/editor/filemanager/browser/default/Browser.css =================================================================== diff -u -N -r1415 -r4936 --- trunk/admin/editor/cmseditor/editor/filemanager/browser/default/Browser.css (.../Browser.css) (revision 1415) +++ trunk/admin/editor/cmseditor/editor/filemanager/browser/default/Browser.css (.../Browser.css) (revision 4936) @@ -82,4 +82,19 @@ .FolderListFolder img { background-image: url(images/Folder.gif); -} \ No newline at end of file +} + +.order-link +{ + text-decoration: none; + font-size: 11px; + font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana; + color: #000000; +} +.order-link:hover +{ + text-decoration: none; + font-size: 11px; + font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana; + color: #000000; +}