/home/mjc1/public_html/FCKeditor/editor/filemanager/browser/default/connectors/php/connector.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
<?php 
/*
 * FCKeditor - The text editor for internet
 * Copyright (C) 2003-2006 Frederico Caldeira Knabben
 * 
 * Licensed under the terms of the GNU Lesser General Public License:
 *         http://www.opensource.org/licenses/lgpl-license.php
 * 
 * For further information visit:
 *         http://www.fckeditor.net/
 * 
 * "Support Open Source software. What about a donation today?"
 * 
 * File Name: connector.php
 *     This is the File Manager Connector for PHP.
 * 
 * File Authors:
 *         Frederico Caldeira Knabben (fredck@fckeditor.net)
 */

ob_start() ;

include(
'config.php') ;
include(
'util.php') ;
include(
'io.php') ;
include(
'basexml.php') ;
include(
'commands.php') ;

if ( !
$Config['Enabled'] )
    
SendError1'This connector is disabled. Please check the "editor/filemanager/browser/default/connectors/php/config.php" file' ) ;

// Get the "UserFiles" path.
$GLOBALS["UserFilesPath"] = '' ;

if ( isset( 
$Config['UserFilesPath'] ) )
    
$GLOBALS["UserFilesPath"] = $Config['UserFilesPath'] ;
else if ( isset( 
$_GET['ServerPath'] ) )
    
$GLOBALS["UserFilesPath"] = $_GET['ServerPath'] ;
else
    
$GLOBALS["UserFilesPath"] = '/UserFiles/' ;

if ( ! 
ereg'/$'$GLOBALS["UserFilesPath"] ) )
    
$GLOBALS["UserFilesPath"] .= '/' ;

if ( 
strlen$Config['UserFilesAbsolutePath'] ) > 
{
    
$GLOBALS["UserFilesDirectory"] = $Config['UserFilesAbsolutePath'] ;

    if ( ! 
ereg'/$'$GLOBALS["UserFilesDirectory"] ) )
        
$GLOBALS["UserFilesDirectory"] .= '/' ;
}
else
{
    
// Map the "UserFiles" path to a local directory.
    
$GLOBALS["UserFilesDirectory"] = GetRootPath() . $GLOBALS["UserFilesPath"] ;
}

DoResponse() ;

function 
DoResponse()
{
    if ( !isset( 
$_GET['Command'] ) || !isset( $_GET['Type'] ) || !isset( $_GET['CurrentFolder'] ) )
        return ;

    
// Get the main request informaiton.
    
$sCommand        $_GET['Command'] ;
    
$sResourceType    $_GET['Type'] ;
    
$sCurrentFolder    $_GET['CurrentFolder'] ;

    
// Check if it is an allowed type.
    
if ( !in_array$sResourceType, array('File','Image','Flash','Media') ) )
        return ;

    
// Check the current folder syntax (must begin and start with a slash).
    
if ( ! ereg'/$'$sCurrentFolder ) ) $sCurrentFolder .= '/' ;
    if ( 
strpos$sCurrentFolder'/' ) !== $sCurrentFolder '/' $sCurrentFolder ;
    
    
// Check for invalid folder paths (..)
    
if ( strpos$sCurrentFolder'..' ) )
        
SendError102"" ) ;

    
// File Upload doesn't have to Return XML, so it must be intercepted before anything.
    
if ( $sCommand == 'FileUpload' )
    {
        
FileUpload$sResourceType$sCurrentFolder ) ;
        return ;
    }

    
CreateXmlHeader$sCommand$sResourceType$sCurrentFolder ) ;

    
// Execute the required command.
    
switch ( $sCommand )
    {
        case 
'GetFolders' :
            
GetFolders$sResourceType$sCurrentFolder ) ;
            break ;
        case 
'GetFoldersAndFiles' :
            
GetFoldersAndFiles$sResourceType$sCurrentFolder ) ;
            break ;
        case 
'CreateFolder' :
            
CreateFolder$sResourceType$sCurrentFolder ) ;
            break ;
    }

    
CreateXmlFooter() ;

    exit ;
}
?>