4

ファイルが CKFinder 内で削除または名前変更された場合、コンテンツを編集し、さまざまなことをユーザーに通知する必要があります。JavaScript ソリューションを作成し、次のような単純な AJAX を使用してロジックをバックエンドにオフロードできると考えました。

CKFinder.on('successfulFileRename', function(event, oldpath, newpath) {
    // Contact backend, see where file was used, inform user etc etc
});

残念ながら、イベント システムは見つかりませんでした。この機能を CKFinder に実装するにはどうすればよいですか? 必要なイベントは、ファイル/フォルダー - 名前の変更/削除/移動です。これはフロントエンド ソリューションである必要はありませんが、シンプルにすることをお勧めします。私のバックエンドは ASP.net MVC3 です。

(CKF の代替案はコメントとして歓迎されますが、CKF とほぼ同じ機能が必要です。)

4

1 に答える 1

3

ドキュメント調べても、拡張ポイントのようなイベントは見つかりませんでした。

ただし、ソースの一部を調べたところ、何かをサーバーに送信する必要があるたびに呼び出されるメソッドsendCommandPostが見つかりました。CKFinder.dataTypes.Connectorそのため、ファイル/フォルダーのようなすべての重要なイベントで - 名前の変更/削除/移動.

そのため、 CKFinderAPIインスタンスにアクセスできるカスタム プラグインを簡単に作成でき、そこからsendCommandPostカスタム ロジックをオーバーライドして追加できます。

CKFinder.addPlugin( 'myplugin', function( api ) {
    var orginalsendCommandPost = api.connector.sendCommandPost;
    api.connector.sendCommandPost = function() {

      // call the original function
      var result = orginalsendCommandPost.apply(this, arguments);

      // commandname as string: 'CreateFolder', 'MoveFiles', 'RenameFile', etc
      console.log(arguments[0]); 
      // arguments as object
      console.log(JSON.stringify(arguments[1]));

      return result;
    }
} );

プラグインの登録:

config.extraPlugins = "myplugin";
var ckfinder = new CKFinder( config );
于 2013-10-31T21:36:31.873 に答える