commit 65bfe26f7b2a7db1b774a389f4c776f761915242
parent f9e01b6a27fcf24893c59cc49e59eb1a5cca6622
Author: dankert <devnull@localhost>
Date: Wed, 13 Jan 2010 22:18:04 +0100
CK-Editor: Serverseitiges Ermitteln der Konfiguration.
Diffstat:
2 files changed, 87 insertions(+), 27 deletions(-)
diff --git a/actionClasses/FilemanagerAction.class.php b/actionClasses/FilemanagerAction.class.php
@@ -50,29 +50,9 @@ class FilemanagerAction extends ObjectAction
*/
function FilemanagerAction()
{
- // PHP-Fehler ins Log schreiben, damit die Ausgabe nicht zerstört wird.
- set_error_handler('filemanagerErrorHandler',E_ALL & ~E_NOTICE);
-
- // Get the main request information.
- $this->command = $this->getRequestVar('Command' );
- $this->resourceType = $this->getRequestVar('Type' );
- $this->currentFolder = $this->getRequestVar('CurrentFolder');
-
- // Check if it is an allowed type.
- if ( !in_array( $this->resourceType, array('File','Image','Flash','Media') ) )
- {
- $this->sendErrorDocument(1,'unknown resource type');
- exit;
- }
-
- // Check the current folder syntax (must begin and end with a slash).
- if ( ! ereg( '/$', $this->currentFolder ) ) $this->currentFolder .= '/' ;
- if ( strpos( $this->currentFolder, '/' ) !== 0 ) $this->currentFolder = '/' . $this->currentFolder;
-
- $this->investigateCurrentFolder();
- }
+ }
-
+
/**
* Ermittelt das aktuelle Ordnerobjekt.
*
@@ -99,22 +79,48 @@ class FilemanagerAction extends ObjectAction
if ( ! $this->folder->isFolder )
$this->sendErrorDocument(102,"currentFolder is invalid (not a folder): "+$this->currentFolder);
}
- }
+ }
-
- /**
+
+ /**
* Anzeigen des Inhaltes, der Inhalt wird samt Header direkt
* auf die Standardausgabe geschrieben
*/
function show()
{
- Logger::debug('Filemanager: '.getenv('REQUEST_URI'));
+ // PHP-Fehler ins Log schreiben, damit die Ausgabe nicht zerst�rt wird.
+ if (version_compare(PHP_VERSION, '5.0.0', '>'))
+ set_error_handler('filemanagerErrorHandler',E_ALL & ~E_NOTICE);
+ else
+ set_error_handler('filemanagerErrorHandler');
+
+ Logger::debug('Filemanager: '.getenv('REQUEST_URI'));
Logger::debug($this->command);
Logger::debug($this->resourceType);
Logger::debug($this->currentFolder);
Logger::debug($this->folder->objectid);
+
+
+ // Get the main request information.
+ $this->command = $this->getRequestVar('Command' );
+ $this->resourceType = $this->getRequestVar('Type' );
+ $this->currentFolder = $this->getRequestVar('CurrentFolder');
+ // Check if it is an allowed type.
+ if ( !in_array( $this->resourceType, array('File','Image','Flash','Media') ) )
+ {
+ $this->sendErrorDocument(1,'unknown resource type');
+ exit;
+ }
+
+ // Check the current folder syntax (must begin and end with a slash).
+ if ( ! ereg( '/$', $this->currentFolder ) ) $this->currentFolder .= '/' ;
+ if ( strpos( $this->currentFolder, '/' ) !== 0 ) $this->currentFolder = '/' . $this->currentFolder;
+
+ $this->investigateCurrentFolder();
+
+
// File Upload doesn't have to Return XML, so it must be intercepted before anything.
if ( $this->command == 'FileUpload' )
{
@@ -335,13 +341,64 @@ class FilemanagerAction extends ObjectAction
echo '<script type="text/javascript">' ;
echo 'window.parent.frames["frmUpload"].OnUploadCompleted(' .$errorNr.',"' . str_replace( '"', '\\"', $errorText ) . '") ;' ;
echo '</script>' ;
+ }
+
+
+
+ /**
+ * Erzeugt Javascript mit der Konfiguration für den FCK-Editor.
+ */
+ function config()
+ {
+ echo <<<EOF
+FCKConfig.ToolbarSets["Default"] = [
+ ['Save','NewPage','Preview','Templates','-','Source','DocProps','ShowBlocks'],
+ ['Cut','Copy','Paste','PasteText','PasteWord','-','Print','SpellCheck'],
+ ['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
+ ['Form','Checkbox','Radio','TextField','Textarea','Select','Button','ImageButton','HiddenField'],
+ '/',
+ ['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'],
+ ['OrderedList','UnorderedList','-','Outdent','Indent','Blockquote'],
+ ['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],
+ ['Link','Unlink','Anchor'],
+ ['Image','Flash','Table','Rule','SpecialChar','PageBreak'],
+ '/',
+ ['Style','FontFormat','FontName','FontSize'],
+ ['TextColor','BGColor'],
+ ['FitWindow'] // No comma for the last row.
+] ;
+EOF
+;
+
+ if ( $this->hasRequestVar( session_name() ) )
+ $s = '&'.session_name().'='.session_id();
+ else
+ $s = '';
+
+ echo "var _FileBrowserLanguage = 'php' ;";
+ echo "var _QuickUploadLanguage = 'php' ;";
+ echo "var _FileBrowserExtension = _FileBrowserLanguage == 'perl' ? 'cgi' : _FileBrowserLanguage ;";
+
+ echo "FCKConfig.LinkBrowser = true;";
+ echo "FCKConfig.LinkBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Connector=../../../../../do.php?action=filemanager".$s."';";
+
+ echo "FCKConfig.ImageBrowser = true ;";
+ echo "FCKConfig.ImageBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Image&Connector=../../../../../do.php?action=filemanager".$s."';";
+
+ echo "FCKConfig.FlashBrowser = true ;";
+ echo "FCKConfig.FlashBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Flash&Connector=../../../../../do.php?action=filemanager".$s."';";
+
+ echo "FCKConfig.LinkUpload = true;";
+ echo "FCKConfig.ImageUpload = true;";
+ echo "FCKConfig.FlashUpload = true;";
+
}
}
/**
- * Fehler-Handler für WEBDAV.<br>
+ * Fehler-Handler f�r WEBDAV.<br>
* Bei einem Laufzeitfehler ist eine Ausgabe des Fehlers auf der Standardausgabe sinnlos.
* Daher wird der Fehler nur geloggt.
*/
diff --git a/actionClasses/FilemanagerAction.ini.php b/actionClasses/FilemanagerAction.ini.php
@@ -3,4 +3,7 @@
goto=show
[show]
+direct=true
+
+[config]
direct=true
\ No newline at end of file