Page MenuHomeIn-Portal Phabricator

in-portal
No OneTemporary

File Metadata

Created
Mon, Feb 3, 2:31 AM

in-portal

Index: branches/5.0.x/core/units/helpers/fck_helper.php
===================================================================
--- branches/5.0.x/core/units/helpers/fck_helper.php (revision 13262)
+++ branches/5.0.x/core/units/helpers/fck_helper.php (revision 13263)
@@ -1,294 +1,282 @@
<?php
/**
* @version $Id$
* @package In-Portal
* @copyright Copyright (C) 1997 - 2009 Intechnic. All rights reserved.
* @license GNU/GPL
* In-Portal is Open Source software.
* This means that this software may have been modified pursuant
* the GNU General Public License, and as distributed it includes
* or is derivative of works licensed under the GNU General Public License
* or other free or open source software licenses.
* See http://www.in-portal.org/license for copyright notices and details.
*/
defined('FULL_PATH') or die('restricted access!');
class fckFCKHelper extends kHelper {
var $Config = Array();
function fckFCKHelper()
{
parent::kHelper();
- $this->Config['AllowedExtensions']['Files'] = array('jpg','gif','jpeg','png','swf','fla','jpg','gif','jpeg','png','avi','mpg','mpeg','zip','rar','arj','gz','tar','doc','pdf','ppt','rdp','swf','swt','txt','vsd','xls','csv','odt') ;
- $this->Config['DeniedExtensions']['Files'] = array('php','asp','aspx','ascx','jsp','cfm','cfc','pl','bat','exe','dll','reg') ;
- $this->Config['AllowedExtensions']['Images'] = array('jpg','gif','jpeg','png', 'bmp') ;
- $this->Config['DeniedExtensions']['Images'] = array('php','asp','aspx','ascx','jsp','cfm','cfc','pl','bat','exe','dll','reg');
- $this->Config['AllowedExtensions']['Flash'] = array('swf','fla') ;
- $this->Config['DeniedExtensions']['Flash'] = array('php','asp','aspx','ascx','jsp','cfm','cfc','pl','bat','exe','dll','reg') ;
- $this->Config['AllowedExtensions']['Media'] = array('asf','asx','avi','wav','wax','wma','wm','wmv','m3u','mp2v','mpg','mpeg','m1v','mp2','mp3','mpa','mpe','mpv2','mp4','mid','midi','rmi','qt','aif','aifc','aiff','mov','flv','rm','svcd','swf','vcd') ;
- $this->Config['DeniedExtensions']['Media'] = array('php','asp','aspx','ascx','jsp','cfm','cfc','pl','bat','exe','dll','reg');
- $this->Config['AllowedExtensions']['Documents'] = array('doc','pdf','ppt','rdp','swf','swt','txt','vsd','xls','csv','zip','odt') ;
- $this->Config['DeniedExtensions']['Documents'] = array('php','asp','aspx','ascx','jsp','cfm','cfc','pl','bat','exe','dll','reg');
-
+ $this->Config['AllowedExtensions']['Files'] = Array('jpg','gif','jpeg','png','swf','fla','jpg','gif','jpeg','png','avi','mpg','mpeg','zip','rar','arj','gz','tar','doc','pdf','ppt','rdp','swf','swt','txt','vsd','xls','csv','odt');
+ $this->Config['DeniedExtensions']['Files'] = Array('php','asp','aspx','ascx','jsp','cfm','cfc','pl','bat','exe','dll','reg');
+ $this->Config['AllowedExtensions']['Images'] = Array('jpg','gif','jpeg','png', 'bmp');
+ $this->Config['DeniedExtensions']['Images'] = Array('php','asp','aspx','ascx','jsp','cfm','cfc','pl','bat','exe','dll','reg');
+ $this->Config['AllowedExtensions']['Flash'] = Array('swf','fla');
+ $this->Config['DeniedExtensions']['Flash'] = Array('php','asp','aspx','ascx','jsp','cfm','cfc','pl','bat','exe','dll','reg');
+ $this->Config['AllowedExtensions']['Media'] = Array('asf','asx','avi','wav','wax','wma','wm','wmv','m3u','mp2v','mpg','mpeg','m1v','mp2','mp3','mpa','mpe','mpv2','mp4','mid','midi','rmi','qt','aif','aifc','aiff','mov','flv','rm','svcd','swf','vcd');
+ $this->Config['DeniedExtensions']['Media'] = Array('php','asp','aspx','ascx','jsp','cfm','cfc','pl','bat','exe','dll','reg');
+ $this->Config['AllowedExtensions']['Documents'] = Array('doc','pdf','ppt','rdp','swf','swt','txt','vsd','xls','csv','zip','odt');
+ $this->Config['DeniedExtensions']['Documents'] = Array('php','asp','aspx','ascx','jsp','cfm','cfc','pl','bat','exe','dll','reg');
+
+ $this->Config['ExtensionIcons'] = Array('ai','avi','bmp','cs','dll','doc','exe','fla','gif','htm','html','jpg','js','mdb','mp3','pdf','png','ppt','rdp','swf','swt','txt','vsd','xls','xml','zip');
}
function CreateFolder($folder = '')
{
if (!$folder) {
return false;
}
$folderPath = WRITEABLE . '/user_files/' . $folder;
if (file_exists($folderPath) && is_dir($folderPath)) {
return true;
}
$permissions = defined('FCK_FOLDERS_PERMISSIONS') ? FCK_FOLDERS_PERMISSIONS : '0777';
return mkdir($folderPath); // , $permissions
}
function IsAllowedExtension($folder, $file_name)
{
- $base_folder = $this->getBaseFolder($folder);
- eregi("(\.[a-zA-Z0-9]{1,10})$", $file_name, $regs);
- $ext = strtolower(ltrim($regs[1],"."));
+ $base_folder = $this->getBaseFolder($folder);
+ $ext = strtolower( pathinfo($file_name, PATHINFO_EXTENSION) );
if (isset($this->Config['DeniedExtensions'][$folder])) {
if (in_array($ext, $this->Config['DeniedExtensions'][$folder])) {
return false;
}
}
if (isset($this->Config['AllowedExtensions'][$folder])) {
if (!in_array($ext, $this->Config['AllowedExtensions'][$folder])) {
return false;
}
}
return true;
}
function getBaseFolder($folder)
{
- $end = strpos("/", $folder);
+ $end = strpos('/', $folder);
if ($end) {
return substr($folder, 0, $end);
}
return $folder;
}
function ReadFolders($files_dir)
{
$aFolders = array();
$oCurrentFolder = opendir($files_dir) ;
$KernelSystemFolders = defined('KERNEL_SYSTEM_FOLDERS') ? KERNEL_SYSTEM_FOLDERS : array('icons', 'CVS', '.svn');
while ( $sFile = readdir( $oCurrentFolder ) )
{
if (is_dir($files_dir . $sFile ) && !in_array($sFile,$KernelSystemFolders) && $sFile != '.' && $sFile != '..') {
$aFolders[] = $sFile;
}
}
closedir( $oCurrentFolder ) ;
return $aFolders;
}
-
function ReadFiles($files_dir)
{
$aFiles = array();
$oCurrentFolder = opendir($files_dir) ;
while ( $sFile = readdir( $oCurrentFolder ) )
{
if (!is_dir($files_dir . $sFile )) {
$aFiles[] = $sFile;
}
}
closedir( $oCurrentFolder ) ;
return $aFiles;
}
-
function PrintFolders()
{
$order_by = $this->Application->GetVar('order_by');
$sort_by = $this->Application->GetVar('sort_by');
$folder = $this->Application->GetVar('folder');
- $files_dir = WRITEABLE."/user_files/".$folder."/";
- $aFolders = $this->ReadFolders($files_dir);
- $ret = '';
+ $files_dir = WRITEABLE . '/user_files/' . $folder . '/';
+ $aFolders = $this->ReadFolders($files_dir);
$order_by = $this->Application->GetVar('order_by');
$sort_by = $this->Application->GetVar('sort_by');
natcasesort($aFolders);
+
+ $ret = '';
foreach ($aFolders as $k => $v) {
$ret .= '<folder2 path="'.$folder."/".$v.'">'.$v.'</folder2>'."\n";
}
-
+
if ($sort_by == 'name' && $order_by == '_desc') {
$aFolders = array_reverse($aFolders);
}
+
foreach ($aFolders as $k => $v) {
$ret .= '<folder path="'.$folder."/".$v.'">'.$v.'</folder>'."\n";
}
return $ret;
}
function CalculateFileSize($size)
{
if ( $size > 0 ) {
$size = round( $size / 1024 );
$size = ($size < 1)? 1:$size;// round( $iFileSize / 1024 ) ;
}
return $size;
}
function CheckIconType($v)
- {
- $a_ext = Array('ai','avi','bmp','cs','dll','doc','exe','fla','gif','htm','html','jpg','js','mdb','mp3','pdf','png','ppt','rdp','swf','swt','txt','vsd','xls','xml','zip');
-
- eregi("(\.[a-zA-Z0-9]{1,10})$", $v, $regs);
- $ext = strtolower(ltrim($regs[1],"."));
- if (in_array($ext, $a_ext))
- {
- $icon = $ext;
- } else {
- $icon = 'default.icon';
- }
- return $icon;
+ {
+ $ext = strtolower( pathinfo($v, PATHINFO_EXTENSION) );
+ return ($ext && in_array($ext, $this->Config['ExtensionIcons']))? $ext : 'default.icon';
}
function GetXmlString($size,$url,$icon,$date,$file_name)
{
return '<file size="'.$size.'" url="'.$url.'" icon="'.$icon.'" date="'.$date.'">'.$file_name.'</file>'."\n";
}
function PrintFiles()
{
$order_by = $this->Application->GetVar('order_by');
$sort_by = $this->Application->GetVar('sort_by');
$folder = $this->Application->GetVar('folder');
- $files_dir = WRITEABLE . "/user_files/" . $folder."/";
- $files_url = BASE_PATH . str_replace(DIRECTORY_SEPARATOR, '/', WRITEBALE_BASE) . "/user_files/" . $folder . "/";
+ $files_dir = WRITEABLE . '/user_files/' . $folder . '/';
+ $files_url = BASE_PATH . str_replace(DIRECTORY_SEPARATOR, '/', WRITEBALE_BASE) . '/user_files/' . $folder . '/';
$aFiles = $this->ReadFiles($files_dir);
$ret = '';
$date_format = "m/d/Y h:i A";
natcasesort($aFiles);
if ($sort_by == 'name' && $order_by == '_desc') {
- $aFiles = array_reverse($aFiles,TRUE);
+ $aFiles = array_reverse($aFiles, TRUE);
}
foreach ($aFiles as $k => $v)
{
$aFilesSize[$k] = filesize( $files_dir . $v);
$aFilesDate[$k] = filectime( $files_dir . $v);
}
if ($sort_by == 'name') {
foreach ($aFiles as $k => $file) {
$size = $this->CalculateFileSize($aFilesSize[$k]);
$date = date($date_format, $aFilesDate[$k]);
$icon = $this->CheckIconType($file);
$ret .= $this->GetXmlString($size,$files_url.$file,$icon,$date,$file);
}
}
if ($sort_by == 'date') {
asort($aFilesDate);
if($order_by == '_desc') {
$aFilesDate = array_reverse($aFilesDate,TRUE);
}
foreach ($aFilesDate as $k => $date) {
$size = $this->CalculateFileSize($aFilesSize[$k]);
$file = $aFiles[$k];
$date = date($date_format, $date);
$icon = $this->CheckIconType($file);
$ret .= $this->GetXmlString($size,$files_url.$file,$icon,$date,$file);
}
}
if ($sort_by == 'size') {
asort($aFilesSize);
if($order_by == '_desc') {
$aFilesSize = array_reverse($aFilesSize,TRUE);
}
foreach ($aFilesSize as $k => $size) {
$size = $this->CalculateFileSize($size);
$file = $aFiles[$k];
$date = date($date_format, $aFilesDate[$k]);
$icon = $this->CheckIconType($file);
$ret .= $this->GetXmlString($size,$files_url.$file,$icon,$date,$file);
}
}
return $ret;
}
function UploadFile()
- {
- $Extensions['Allowed']['Files'] = array('jpg','gif','jpeg','png','swf','fla','jpg','gif','jpeg','png','avi','mpg','mpeg','zip','rar','arj','gz','tar','doc','pdf','ppt','rdp','swf','swt','txt','vsd','xls','csv','odt') ;
- $Extensions['Allowed']['Images'] = array('jpg','gif','jpeg','png', 'bmp') ;
- $Extensions['Allowed']['Flash'] = array('swf','fla') ;
- $Extensions['Allowed']['Media'] = array('asf','asx','avi','wav','wax','wma','wm','wmv','m3u','mp2v','mpg','mpeg','m1v','mp2','mp3','mpa','mpe','mpv2','mp4','mid','midi','rmi','qt','aif','aifc','aiff','mov','flv','rm','svcd','swf','vcd') ;
- $Extensions['Allowed']['Documents'] = array('doc','pdf','ppt','rdp','swf','swt','txt','vsd','xls','csv','zip','odt') ;
-
+ {
$upload_dir = $this->Application->GetVar('upload_dir');
- $type = explode("/",$upload_dir);
+ $type = explode('/', $upload_dir);
$type = $type[0];
- $sServerDir = WRITEABLE."/user_files/".$upload_dir."/";
+ $sServerDir = WRITEABLE . '/user_files/' . $upload_dir . '/';
$aUpFile = $_FILES['NewFile'];
$sFileName = $aUpFile['name'];
$sOriginalFileName = $aUpFile['name'];
$sExtension = strtolower(substr( $sFileName, ( strrpos($sFileName, '.') + 1 ) ) );
$sErrorNumber = 0;
if ( isset( $_FILES['NewFile'] ) && !is_null( $_FILES['NewFile']['tmp_name'] ) )
{
- if (in_array($sExtension,$Extensions['Allowed'][$type]))
+ if (in_array($sExtension, $this->Config['AllowedExtensions'][$type]))
{
-
if (!$aUpFile['error']) {
$iCounter = 0 ;
while ( true )
{
- $sFilePath = $sServerDir . $sFileName ;
+ $sFilePath = $sServerDir . $sFileName;
if ( is_file( $sFilePath ) )
{
$iCounter++ ;
- $sFileName = $this->RemoveExtension( $sOriginalFileName ) . '(' . $iCounter . ').' . $sExtension ;
- $sErrorNumber = '201' ;
+ $sFileName = $this->RemoveExtension( $sOriginalFileName ) . '(' . $iCounter . ').' . $sExtension;
+ $sErrorNumber = '201';
}
else
{
// Turn off all error reporting.
error_reporting( 0 ) ;
+
// Enable error tracking to catch the error.
- ini_set( 'track_errors', '1' ) ;
- move_uploaded_file( $aUpFile['tmp_name'], $sFilePath ) ;
- $sErrorMsg = $php_errormsg ;
+ ini_set( 'track_errors', '1' );
+
+ move_uploaded_file( $aUpFile['tmp_name'], $sFilePath );
+ $sErrorMsg = $php_errormsg;
+
// Restore the configurations.
- ini_restore( 'track_errors' ) ;
- ini_restore( 'error_reporting' ) ;
+ ini_restore( 'track_errors' );
+ ini_restore( 'error_reporting' );
- if ( is_file( $sFilePath ) )
- {
- $oldumask = umask(0) ;
- chmod( $sFilePath, 0666 ) ;
- umask( $oldumask ) ;
+ if ( is_file( $sFilePath ) ) {
+ $oldumask = umask(0);
+ chmod( $sFilePath, 0666 );
+ umask( $oldumask );
}
break ;
}
}
}
- } else {
+ }
+ else {
$sErrorNumber = '203';
}
- } else {
+ }
+ else {
$sErrorNumber = '202' ;
}
echo '<script type="text/javascript">' ;
echo 'window.parent.frames["frmUpload"].OnUploadCompleted(' . $sErrorNumber . ',"' . str_replace( '"', '\\"', $sFileName ) . '") ;' ;
echo '</script>' ;
}
function RemoveExtension( $fileName )
{
return substr( $fileName, 0, strrpos( $fileName, '.' ) ) ;
}
}
\ No newline at end of file
Index: branches/5.0.x/core/units/fck/fck_tp.php
===================================================================
--- branches/5.0.x/core/units/fck/fck_tp.php (revision 13262)
+++ branches/5.0.x/core/units/fck/fck_tp.php (revision 13263)
@@ -1,129 +1,128 @@
<?php
/**
* @version $Id$
* @package In-Portal
* @copyright Copyright (C) 1997 - 2009 Intechnic. All rights reserved.
* @license GNU/GPL
* In-Portal is Open Source software.
* This means that this software may have been modified pursuant
* the GNU General Public License, and as distributed it includes
* or is derivative of works licensed under the GNU General Public License
* or other free or open source software licenses.
* See http://www.in-portal.org/license for copyright notices and details.
*/
defined('FULL_PATH') or die('restricted access!');
- class FckTagProcessor extends kDBTagProcessor {
+ class FckTagProcessor extends kDBTagProcessor {
function ReadFolders($files_dir)
{
$folders = glob($files_dir . '*', GLOB_ONLYDIR);
if (!$folders) {
return Array ();
}
$folders = array_map('basename', $folders);
$system_folders = defined('KERNEL_SYSTEM_FOLDERS') ? KERNEL_SYSTEM_FOLDERS : Array ('icons', 'CVS', '.svn');
return array_diff($folders, $system_folders);
}
function ReadFiles($files_dir)
{
$aFiles = array();
$oCurrentFolder = opendir($files_dir) ;
// $KernelSystemFolders = defined('KERNEL_SYSTEM_FOLDERS') ? KERNEL_SYSTEM_FOLDERS : array('icons', 'CVS', '.svn');
while ( $sFile = readdir( $oCurrentFolder ) )
{
if (!is_dir($files_dir . $sFile )) {
$aFiles[] = $sFile;
}
}
closedir( $oCurrentFolder ) ;
return $aFiles;
}
function CheckCreateDefaultFolders()
{
$fck_helper =& $this->Application->recallObject('FCKHelper');
/* @var fck_helper fckFCKHelper*/
$default_folders = defined('FCK_DEFAULT_FOLDERS') ? FCK_DEFAULT_FOLDERS : Array ('Files', 'Images', 'Flash', 'Documents');
foreach ($default_folders as $index => $folder) {
if (!$fck_helper->CreateFolder($folder)) {
unset($default_folders[$index]);
}
}
if (!$default_folders) {
return '';
}
$ret = '';
foreach ($default_folders as $folder) {
$selected = ($this->Application->GetVar('type') == $folder) ? 'selected' : '';
$ret.= '<option value="' . $folder . '" '.$selected.' />' . $folder;
}
return $ret;
}
function PrintFolders($params)
{
$order_by = $this->Application->GetVar('order_by');
$sort_by = $this->Application->GetVar('sort_by');
$params['folder'] = $this->Application->GetVar('folder');
$files_dir = WRITEABLE."/user_files/".$params['folder']."/";
$aFolders = $this->ReadFolders($files_dir);
$block_params = $this->prepareTagParams($params);
$block_params['name'] = $block_params['render_as'];
$ret = '';
foreach ($aFolders as $k => $v) {
$block_params['folder_name'] = $v;
$block_params['path'] = $params['folder']."/".$v;
$ret .= $this->Application->ParseBlock($block_params);
}
return $ret;
}
function PrintFiles($params)
{
$params['folder'] = $this->Application->GetVar('folder');
$files_dir = WRITEABLE . "/user_files/" . $params['folder'] . "/";
$files_url = BASE_PATH . WRITEBALE_BASE . "/user_files/" . $params['folder']."/";
$aFiles = $this->ReadFiles($files_dir);
$block_params = $this->prepareTagParams($params);
$block_params['name'] = $block_params['render_as'];
$ret = '';
$date_format = "m/d/Y h:i A";
$a_ext = Array('ai','avi','bmp','cs','dll','doc','exe','fla','gif','htm','html','jpg','js','mdb','mp3','pdf','png','ppt','rdp','swf','swt','txt','vsd','xls','xml','zip');
foreach ($aFiles as $k => $v) {
$size = filesize( $files_dir . $v ) ;
if ( $size > 0 ) {
$size = round( $size / 1024 );
$size = ($size < 1)? 1:$size;// round( $iFileSize / 1024 ) ;
}
- eregi("(\.[a-zA-Z0-9]{1,10})$", $v, $regs);
- $ext = strtolower(ltrim($regs[1],"."));
- if (in_array($ext, $a_ext))
- {
+ $ext = strtolower( pathinfo($v, PATHINFO_EXTENSION) );
+ if (in_array($ext, $a_ext)) {
$icon = $ext;
- } else {
+ }
+ else {
$icon = 'default.icon';
}
$block_params['file_name'] = $v;
$block_params['size'] = $size;
$block_params['url'] = $files_url.$v;
$block_params['icon'] = $icon;
$block_params['date'] = date($date_format, filectime( $files_dir . $v ));
// $block_params['path'] = $params['folder']."/".$v;
$ret .= $this->Application->ParseBlock($block_params);
}
return $ret;
}
}
\ No newline at end of file
Index: branches/5.0.x/core/admin_templates/browser/frmresourceslist.tpl
===================================================================
--- branches/5.0.x/core/admin_templates/browser/frmresourceslist.tpl (revision 13262)
+++ branches/5.0.x/core/admin_templates/browser/frmresourceslist.tpl (revision 13263)
@@ -1,519 +1,519 @@
<inp2:m_NoDebug/>
<inp2:m_Set skip_last_template="1"/>
<inp2:m_include t="browser/browser_header" nobody='yes'/>
<script language="javascript">
var $current_sort_order = '_asc';
var $current_sort_by = 'name';
var $print_html = '';
var folder_up_exists = false;
var table_footer = false;
var table_header = false;
var table_footer2 = false;
var table_header2 = false;
var output = '';
var output2 = '';
function ShowContextMenu(event) {
if (event.target) {
var targ = event.target;
}
else if (event.srcElement) {
var targ = event.srcElement;
}
if (targ.nodeType == 3) {
targ = targ.parentNode; // defeat Safari bug
}
document.getElementById("context_menu").style.display = "";
document.getElementById("context_menu").style.top = event.clientY;
document.getElementById("context_menu").style.left = event.clientX;
id = targ.id;
document.getElementById("context_menu_file").value = id;
}
function HideContextMenu() {
document.getElementById("context_menu").style.display = "none";
}
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;
files_list.getFilesList();
//alert('GetFoldersAndFiles_'+current_sort_by+current_sort_order);
}
function OpenFolder( folderPath , folder )
{
document.getElementById('tableFiles').innerHTML = '';
window.parent.frames['frmFolders'].document.getElementById('tableFiles').innerHTML = '';
window.top.current_folder = folderPath ;
window.top.last_folder = folder;
files_list.getFilesList();
}
function OpenFile( fileUrl, fileSize)
{
window.top.opener.SetUrl( fileUrl, '', '', '', fileSize);
window.close() ;
window.top.close() ;
window.top.opener.focus() ;
}
function HandleCheckboxes() {
var checked_num = 0, i, count = 0;
checkboxes = document.getElementsByName('file_checkbox');
for (var i = 0; i< checkboxes.length; i++)
{
if (checkboxes[i].checked && checkboxes[i].value)
checked_num++;
}
if (checked_num == 0) {
document.getElementById("selector").checked = false;
}
if (checked_num > 0) {
window.parent.frames['frmUpload'].SetElementVisibility("none", "");
if (checked_num > 1) {
window.parent.frames['frmUpload'].SetButtonAvalability("rename", false);
}
else {
window.parent.frames['frmUpload'].SetButtonAvalability("rename", true);
}
}
else {
window.parent.frames['frmUpload'].SetElementVisibility("", "none");
}
}
function RenameCallBack($request, $params, $object)
{
iErrorNumber = parseInt($request.responseText);
switch ( iErrorNumber )
{
case 0 :
window.parent.frames['frmUpload'].SetElementVisibility("", "none");
files_list.getFilesList();
break ;
case 203 :
alert( '<inp2:m_Phrase label="la_fck_InvalidFileType" js_escape="1"/>' ) ;
break ;
case 204 :
alert( '<inp2:m_Phrase label="la_fck_FileAvailable" js_escape="1"/>' ) ;
break ;
default :
alert( '<inp2:m_Phrase label="la_fck_ErrorFileUpload" js_escape="1"/> ' + errorNumber ) ;
break ;
}
}
function CreateCallBack($request, $params, $object)
{
iErrorNumber = parseInt($request.responseText);
switch ( iErrorNumber )
{
case 0 :
files_list.getFilesList();
break ;
case 101 :
alert( '<inp2:m_Phrase label="la_fck_FolderAlreadyExists" js_escape="1"/>' ) ;
break ;
case 102 :
alert( '<inp2:m_Phrase label="la_fck_InvalidFolderName" js_escape="1"/>' ) ;
break ;
case 103 :
alert( '<inp2:m_Phrase label="la_fck_NoPermissionsCreateFolder" js_escape="1"/>' ) ;
break ;
case 110 :
alert( '<inp2:m_Phrase label="la_fck_UnknownErrorCreatingFolder" js_escape="1"/>' ) ;
break ;
default :
alert( '<inp2:m_Phrase label="la_fck_ErrorCreatingFolder" js_escape="1"/> ' + iErrorNumber ) ;
break ;
}
}
function DeleteCallBack($request, $params, $object)
{
window.parent.frames['frmUpload'].SetElementVisibility("", "none");
files_list.getFilesList();
}
function Refresh()
{
OpenFolder(window.top.current_folder,window.top.last_folder)
window.parent.frames['frmUpload'].SetElementVisibility("", "none");
}
function RenameFile(old_name,new_name)
{
if (ValidateFileName(new_name)) {
// files_list.renameFile(old_name,new_name);
var $url = rename_url.replace('#OLD_NAME#', old_name);
var $url = $url.replace('#NEW_NAME#', new_name);
var $url = $url.replace('#FOLDER#', window.top.current_folder);
Request.makeRequest($url, null, '', RenameCallBack);
}
else
RenameFromContextMenu(old_name);
}
function RenameFromContextMenu(old_name) {
if (old_name)
file_name = old_name;
else
file_name = document.getElementById("context_menu_file").value;
f=prompt('Rename file "'+file_name+'"?',file_name);
if (f) {
RenameFile(file_name,f);
}
HideContextMenu();
}
function ValidateFileName(file_name)
{
var sp = file_name.replace(/\\/g, '\/');
sp=sp.split("/");
file_name = sp[sp.length-1];
var re = /^([\/a-zA-Z0-9\(\)_\.-]+)$/
if (!re.test(file_name)) {
alert('<inp2:m_Phrase label="la_fck_ErrorFileName" js_escape="1"/>');
return false;
} else
return true;
}
function DeleteFiles(confirm)
{
var files = GetCheckedFileName('All');
var $url = delete_url.replace('#FOLDER#', window.top.current_folder);
var $url = $url.replace('#FILES#', files);
Request.makeRequest($url, null, '', DeleteCallBack);
}
function CreateFolder(folder)
{
var $url = create_folder_url.replace('#CURRENT_FOLDER#', window.top.current_folder);
var $url = $url.replace('#FOLDER#', folder);
Request.makeRequest($url, null, '', CreateCallBack);
}
function DeleteFromContextMenu() {
file_name = document.getElementById("context_menu_file").value;
f=confirm('Delete file "'+file_name+'"?',file_name);
if (f) {
var $url = delete_url.replace('#FOLDER#', window.top.current_folder);
var $url = $url.replace('#FILES#', file_name);
Request.makeRequest($url, null, '', DeleteCallBack);
}
HideContextMenu();
}
function GetCheckedFileName(method)
{
var files = '';
checkboxes = document.getElementsByName('file_checkbox');
for (var i = 0; i< checkboxes.length; i++) {
if (checkboxes[i].checked && checkboxes[i].value) {
if (method == 'first')
return checkboxes[i].value;
if (method == 'cnt') {
files++;
} else
files = files+checkboxes[i].value+'|';
}
}
return files;
}
function UpdateDivSize()
{
/* table_height = document.getElementById('tableFiles').clientHeight;
if(is_msie())
window_height = document.body.clientHeight - 20;
else
window_height = window.outerHeight - 165;
if (document.getElementById('data_div')) {
document.getElementById('data_div').style.height = window_height;
if (window_height < table_height) {
document.getElementById('data_div').scroll = 'yes';
document.getElementById('sortFiles').style.width = document.getElementById('tableFiles').clientWidth;
} else {
document.getElementById('data_div').scroll = 'yes';
document.getElementById('sortFiles').style.width = document.getElementById('tableFiles').clientWidth;
}
}
*/ }
function ProtectPath(path)
{
path = path.replace( /\\/g, '\\\\') ;
path = path.replace( /'/g, '\\\'') ;
return path ;
}
function AjaxFilesList($url, $input_mask) {
this.URL = $url;
this.InputMask = $input_mask;
}
AjaxFilesList.prototype.getFilesList = function ()
{
var $url = this.URL.replace('#SORT_BY#', $current_sort_by);
var $url = $url.replace('#ORDER_BY#', $current_sort_order);
var $url = $url.replace('#FOLDER#', window.top.current_folder);
Request.makeRequest($url, this.BusyRequest, '', this.successCallback, this.errorCallback, ['getFilesList'], this);
}
AjaxFilesList.prototype.renameFile = function (oldName, newName)
{
var $url = rename_url.replace('#OLD_NAME#', oldName);
var $url = $url.replace('#NEW_NAME#', newName);
var $url = $url.replace('#FOLDER#', window.top.current_folder);
Request.makeRequest($url, this.BusyRequest, '', RenameCallBack, this.errorCallback, ['getFilesList'], this);
}
AjaxFilesList.prototype.deleteFiles = function (oldName, newName)
{
var $url = delete_url.replace('#FOLDER#', window.top.current_folder);
Request.makeRequest($url, this.BusyRequest, '', RenameCallBack, this.errorCallback, ['getFilesList'], this);
}
AjaxFilesList.prototype.successCallback = function($request, $params, $object) {
var $responce = $request.responseText;
$object.ProcessXMLNode($request.responseXML);
}
AjaxFilesList.prototype.GetFolderTR = function(folder, folderPath)
{
var sLink = '<a href="#" onclick="OpenFolder(\'' + folderPath + '\',\'' + folder + '\'); return false;">' ;
output = output + '<tr>'+
'<td width="25">' +
'<\/td>' +
'<td>' +
'<table cellSpacing="1" cellPadding="0" border="0">' +
'<tr>'+
'<td>' +
sLink +
'<img alt="" src="img/browser/Folder.gif" width="16" height="16" border="0"><\/a>' +
'<\/td>' +
'<td>' +
sLink +
folder +
'<\/a>' +
'<\/td>' +
'<\/tr>' +
'<\/table>' +
'<\/td>' +
'<td width="50">&nbsp;' +
'<\/td>' +
'<td width="10">&nbsp;'+
'<\/td>' +
'<td width="120">&nbsp;'+
'<\/td>' +
'<\/td><\/tr>' ;
}
AjaxFilesList.prototype.GetFolderTR2 = function(folder, folderPath)
{
var sLink = '<a href="#" onclick="OpenFolder(\'' + folderPath + '\',\'' + folder + '\'); return false;">' ;
output2 = output2 + '<tr>'+
'<td>' +
sLink +
'<img alt="" src="img/browser/Folder.gif" width="16" height="16" border="0"><\/a>' +
'<\/td>' +
'<td>' +
sLink +
folder +
'<\/a>' +
'<\/td>' +
'<\/tr>';
}
AjaxFilesList.prototype.GetFolderTRfile = function(fileName, fileUrl, fileIcon, fileSize, fileDate)
{
var sLink = '<a href="#" onclick="OpenFile(\'' + fileUrl + '\',\''+fileSize+'\'); return false;">' ;
output = output + '<tr>'+
'<td width="25"><input type="checkbox" onclick="HandleCheckboxes();" value="' + fileName + '" name="file_checkbox"\/><\/td>' +
'<td>' +
'<table cellSpacing="1" cellPadding="0" border="0">' +
'<tr>'+
'<td>' + sLink + '<img alt="" src="img/browser/icons/' + fileIcon + '.gif" width="16" height="16" border="0"><\/a><\/td>' +
'<td>' + sLink + '<span id="' + fileName + '" oncontextmenu="ShowContextMenu(event);">' + fileName + '<\/span><\/a><\/td>' +
'<\/tr>' +
'<\/table>' +
'<\/td>' +
'<td width="50">&nbsp;&nbsp;' + fileSize + ' KB<\/td>' +
'<td width="10">&nbsp;<\/td>' +
'<td width="120">'+ fileDate + '<\/td><\/tr>' ;
}
AjaxFilesList.prototype.ProcessXMLNode = function($node)
{
//document.getElementById('tableFiles').innerHTML = '';
//window.parent.frames['frmFolders'].document.getElementById('tableFiles').innerHTML = '';
//folder_up_exists = false;
//alert(document.getElementById('tableFiles').innerHTML);
if (!table_header) {
document.getElementById('tableFiles').innerHTML = '';
output = '<table border="0" cellSpacing="1" cellPadding="0" width="100%" border="0" style="padding-top:0px;">';
table_header = true;
}
if (!table_header2) {
window.parent.frames['frmFolders'].document.getElementById('tableFiles').innerHTML = '';
output2 = '<table border="0" cellSpacing="1" cellPadding="0" width="100%" border="0" style="padding-top:0px;">';
table_header2 = true;
}
for (var i = 0; i < $node.childNodes.length; i++) {
var $child = $node.childNodes.item(i);
//alert($child.tagName+' CHILD');
switch ($child.tagName)
{
case 'folder':
var path = $child.getAttribute('path');
var resource = $child.firstChild.nodeValue;
var reg_exp = window.top.current_type + '/' +resource;
this.GetFolderTR(resource, path);
break;
case 'folder2':
var path = $child.getAttribute('path');
var resource = $child.firstChild.nodeValue;
var reg_exp = window.top.current_type + '/' +resource;
this.GetFolderTR2(resource, path);
break;
case 'file':
this.GetFolderTRfile(
$child.firstChild.nodeValue,
$child.getAttribute('url'),
$child.getAttribute('icon'),
$child.getAttribute('size'),
$child.getAttribute('date')
);
break;
case 'content':
this.ProcessXMLNode($child);
break;
}
}
document.getElementById('tableFiles').innerHTML = output + '</table>';
window.parent.frames['frmFolders'].document.getElementById('tableFiles').innerHTML = output2 + '</table>';
table_header = false;
table_header2 = false;
window.parent.frames['frmFolders'].SetVisibleButtonUp();
window.parent.frames['frmActualFolder'].SetCurrentFolder() ;
}
// 'admin/index.php?env=-dummy:fck--OnLoadCmsTree---&admin=1'
var files_list_url = '<inp2:m_Link template="dummy" sort_by="#SORT_BY#" order_by="#ORDER_BY#" folder="#FOLDER#" pass="m,fck" fck_event="OnGetFoldersFilesList" no_amp="1"/>'
// '<inp2:m_Link template="core/browser/xml/files_list" sort_by="#SORT_BY#" order_by="#ORDER_BY#" folder="#FOLDER#" no_amp="1"/>'
var files_list = new AjaxFilesList(files_list_url);
var rename_url = '<inp2:m_Link template="dummy" old_name="#OLD_NAME#" new_name="#NEW_NAME#" folder="#FOLDER#" pass="m,fck" fck_event="OnRenameFile" no_amp="1"/>';
var delete_url = '<inp2:m_Link template="dummy" files="#FILES#" folder="#FOLDER#" pass="m,fck" fck_event="OnDeleteFiles" no_amp="1"/>';
var create_folder_url = '<inp2:m_Link template="dummy" current_folder="#CURRENT_FOLDER#" new_folder="#FOLDER#" pass="m,fck" fck_event="OnCreateFolder" no_amp="1"/>';
window.onload = function()
{
files_list.getFilesList();
window.top.IsLoadedResourcesList = true ;
}
function do_nothing() {}
window.onresize = UpdateDivSize;
</script>
<body class="FileArea" bottomMargin="10" leftMargin="10" topMargin="3" rightMargin="10" onclick="HideContextMenu();" oncontextmenu="return false;">
<div id="sort_div" style="padding: 0; border: none; overflow: hidden; width: 100%; position: relative;">
<table id="sortFiles" border="0" cellSpacing="1" cellPadding="0" width="100%" border="0" style="border-bottom:1px solid #000000; margin-bottom:0px; padding-bottom:0px;">
<tr>
<td width="25">
<input type="checkbox" id="selector" value="unchecked" onclick="ToggleSelectAll();" />
</td>
<td>
<table border="0" cellSpacing="0" cellPadding="0"border="0">
<tr>
<td><a href="javascript:sortBy('name');"><img id="sort_name" src="img/browser/sort_asc.gif" alt="" border="0"></a></td>
<td><a href="javascript:sortBy('name');" class='order-link'>&nbsp;<inp2:m_Phrase label="la_fck_FileName"/></a></td>
</tr>
</table>
</td>
<td width="50" align="center">
<table border="0" cellSpacing="0" cellPadding="0"border="0">
<tr>
<td><a href="javascript:sortBy('size');"><img id="sort_size" src="img/browser/sort_no.gif" alt="" border="0"></a></td>
<td><a href="javascript:sortBy('size');" class='order-link'>&nbsp;<inp2:m_Phrase label="la_fck_FileSize"/></a></td>
</tr>
</table>
</td>
<td width="10"> </td>
<td width="120">
<table border="0" cellSpacing="0" cellPadding="0"border="0">
<tr>
<td><a href="javascript:sortBy('date');"><img id="sort_date" src="img/browser/sort_no.gif" alt="" border="0"></a></td>
<td><a href="javascript:sortBy('date');" class='order-link'>&nbsp;<inp2:m_Phrase label="la_fck_FileDate"/></a></td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div id="data_div" style="padding: 0; border: none; overflow: auto; width: 100%; position: relative;">
<img src="img/browser/s.gif" width="1" height="3"><br />
<div id="tableFiles" style="width:100%">
</div>
</div>
<div style="display:none">
<img id='_desc' src="img/browser/sort_desc.gif" alt="" border="0">
<img id='_asc' src="img/browser/sort_asc.gif" alt="" border="0">
<img id='_no' src="img/browser/sort_no.gif" alt="" border="0">
</div>
<table id="context_menu" cellpadding="0" cellspacing="2" style="position: absolute; background-color: #FFFFFF; border: 1px solid #000000; display: none">
<tr>
<td>
<table id="context_menu" cellpadding="0" cellspacing="0">
<tr style="height:18px;" onmouseover="document.getElementById('rename').bgColor = '#8f8f73'; document.getElementById('rename_dot').bgColor = '#737357';" onmouseout="document.getElementById('rename').bgColor = '#FFFFFF'; document.getElementById('rename_dot').bgColor = '#E3E3C7';">
- <td id="rename_dot" bgcolor="#E3E3C7" align="center" valign="middle" width="15"><img src="images/blackpix.gif" style="width: 5; height: 5" /></td>
+ <td id="rename_dot" bgcolor="#E3E3C7" align="center" valign="middle" width="15"><img src="img/browser/blackpix.gif" style="width: 5; height: 5" /></td>
<td id="rename" align="left" style="font-size: 11px; font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana" onclick="RenameFromContextMenu();">&nbsp;<a href="javascript:do_nothing()" style="text-decoration: none; color: #000000">Rename</a>&nbsp;&nbsp;</td>
</tr>
<tr style="height:18px;" onmouseover="document.getElementById('delete').bgColor = '#8f8f73'; document.getElementById('delete_dot').bgColor = '#737357';" onmouseout="document.getElementById('delete').bgColor = '#FFFFFF'; document.getElementById('delete_dot').bgColor = '#E3E3C7';">
- <td id="delete_dot" bgcolor="#E3E3C7" align="center" valign="middle" width="15"><img src="images/blackpix.gif" style="width: 5; height: 5" /></td>
+ <td id="delete_dot" bgcolor="#E3E3C7" align="center" valign="middle" width="15"><img src="img/browser/blackpix.gif" style="width: 5; height: 5" /></td>
<td id="delete" align="left" style="font-size: 11px; font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana" onclick="DeleteFromContextMenu();">
&nbsp;<a href="javascript:do_nothing()" style="text-decoration: none; color: #000000">Delete</a>&nbsp;&nbsp;
<input type="hidden" value="" id="context_menu_file">
</td>
</tr>
</table>
</td>
</tr>
</table>
<inp2:m_include t="browser/browser_footer" />
\ No newline at end of file

Event Timeline