3

私は CKEditor 3 を使用しており、無料のファイル ブラウザ/アップローダを統合する必要があります。FCKEditor に付属するものを統合しようとしましたが、常に次の XML エラーが発生します

サーバーから適切な XML 応答が返されませんでした。システム管理者に連絡してください。

XML 要求エラー: OK (200)

要求された URL:http://example.com/admin/filemanager/browser/default/?Command=GetFoldersAndFiles&Type=File&CurrentFolder=%2F&uuid=1260817820353

応答テキスト:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
 <head>
  <title>Index of /admin/filemanager/browser/default</title>
 </head>
 <body>
<h1>Index of /admin/filemanager/browser/default</h1>
<table><tr><th><img src="/icons/blank.gif" alt="[ICO]"></th>
  <th><a href="?C=N;O=D">Name</a></th>
  <th><a href="?C=M;O=A">Last modified</a></th>
  <th><a href="?C=S;O=A">Size</a></th>
  <th><a href="?C=D;O=A">Description</a></th></tr>
<!-- edited for brevity -->

私はこのようにしようとしています:

<script type="text/javascript">
 window.onload = function(){
  CKEDITOR.config.language='es';
  CKEDITOR.config.forcePasteAsPlainText = true;
  CKEDITOR.config.enterMode = CKEDITOR.ENTER_DIV;
  CKEDITOR.replace('ncCont',{
    filebrowserBrowseUrl: 'filemanager/browser/default/browser.html',
    filebrowserUploadUrl : 'filemanager/connectors/php/upload.php'
  });
 };
</script>

FCKeditor は CKEditor と統合できますか? はいの場合、どうすればこれを行うことができますか? そうでない場合、無料のファイルブラウザ/アップローダーの代替手段はありますか?

4

3 に答える 3

10

コードが私を大いに助けてくれたPenuelから便乗したかった。

これを/filemanager/connectors/php/upload.phpに追加します

// Get the CKEditor Callback
$CKEcallback = $_GET['CKEditorFuncNum'];

//modify the next line adding in the new param
FileUpload($sType, $sCurrentFolder, $sCommand, $CKEcallback);

これを/filemanager/connectors/php/io.phpに追加します

// This is the function that sends the results of the uploading process to CKE.
function SendCKEditorResults ($callback, $sFileUrl, $customMsg = '')
{
  echo '<script type="text/javascript">';

  $rpl = array( '\\' => '\\\\', '"' => '\\"' ) ;

  echo 'window.parent.CKEDITOR.tools.callFunction("'. $callback. '","'.
    strtr($sFileUrl, $rpl). '", "'. strtr( $customMsg, $rpl). '");' ; 

  echo '</script>';
}

この/filemanager/connectors/php/commands.phpを変更します

//line 158
function FileUpload($resourceType, $currentFolder, $sCommand, $CKEcallback = '')

//line 166

  if ( (isset($_FILES['NewFile']) && !is_null($_FILES['NewFile']['tmp_name']))
    # This is for the QuickUpload tab box
    or (isset($_FILES['upload']) and !is_null($_FILES['upload']['tmp_name'])))
  {
    global $Config ;

    $oFile = isset($_FILES['NewFile']) ? $_FILES['NewFile'] : $_FILES['upload'];

...

  if($CKEcallback == '')
  {
    // this line already exists so wrap the if block around it
    SendUploadResults( $sErrorNumber, $sFileUrl, $sFileName ) ;
  }
  else 
  {
    //issue the CKEditor Callback
    SendCKEditorResults ($CKEcallback, $sFileUrl,
    ($sErrorNumber != 0 
      ? 'Error '. $sErrorNumber. ' upload failed. '. $sErrorMsg
      : 'Upload Successful'));
  }

次のように、アップロードURLをCKEDITOR定義に追加する必要があります。

  var filemanager = '/js/ckeditor/filemanager/';
  var browser = filemanager + 'browser/default/browser.html';
  var connector = filemanager + 'connectors/php/connector.php';
  var upload = filemanager + 'connectors/php/upload.php';
  CKEDITOR.replace( id,
  {    
    customConfig : this.config,
    filebrowserBrowseUrl : browser +'?Connector=' + connector,
    filebrowserImageBrowseUrl : browser + '?Type=Image&Connector='
      + connector,
    filebrowserFlashBrowseUrl : browser + '?Type=Flash&Connector=' 
      + connector,
    filebrowserUploadUrl : upload + '?type=Files',
    filebrowserImageUploadUrl : upload + '?type=Images',
    filebrowserFlashUploadUrl : upload + '?type=Flash'
  });

それはペヌエルによって残されたすべてをカバーしていると思います

于 2010-04-01T22:16:49.880 に答える
8

あなたの質問に答えるために、FCKEditorのファイルブラウザをCKEditorに統合するためのステップバイステップの説明を含む小さなチュートリアルをブログに投稿しました。に移動してください:

http://www.mixedwaves.com/2010/02/integrating-fckeditor-filemanager-in-ckeditor/

私はこれをPHPコネクターに対して行いましたが、他の言語についてもかなり単純なはずです。

すでに実行された例をダウンロードするか、この記事からデモを表示することもできます。

于 2010-03-04T12:51:43.930 に答える
0

ckeditorの実装でカスタムファイルブラウザを使用しているので、古いファイルブラウザを使用できなかった理由がわかりません。同じJavaScriptを使用してエディターにデータを入力します。

古いFCKエディターを任意のディレクトリにインストールし、構成にそのブラウザーへの正しいパスがあることを確認してください。上記のパスの問題があると思います。

于 2009-12-15T12:57:56.050 に答える