ドキュメント編集画面のリッチエディタ(TinyMCE等)でファイルをアップロードする際に使う、リソースブラウザについて、
以前投稿した↓ リソースブラウザのアップロード機能のいくつかの問題を修正するものを作りましたので、添付しておきます。
http://modxcms.com/forums/index.php/topic,28535.msg184182.html#msg184182
修正点は以下です。
- ファイルの容量チェックの単位が間違っていたバグの修正。(設定値をKバイトで扱っていましたが、正しくはバイトですね)
- PHPのバージョンにより、`basename`は、マルチバイト文字の処理にバグがあるようですので、他のコードに置き換えました。(ファイル名にマルチバイト文字が含まれていると悲惨なことになります。)
- ファイル名に使える文字種`FileNameAllowedChars`(*1)以外の文字を含むファイル名をエラーにするようにしました。(マルチバイト文字を含むファイル名をアップすると、リソースブラウザの表示に支障がありますので)
添付ファイルをダウンロードして展開すると、「en」と「ja」の2つのフォルダがありますが、
「en」は、修正のみを行ったものです。
「ja」は、さらにメッセージを日本語化(internal error等を除く)したものです。
どちらか好きな方の「FileUpload.php」を使って、
「manager/media/browser/mcpuk/connectors/php/Commands/FileUpload.php」
を上書きすると使えます。
(*1)「manager/media/browser/mcpuk/connectors/php/config.php」で設定されているようです。
以前の投稿時は、とりあえず、ファイル名の文字種チェックを直接ハードコーディングしていましたが、
調べてみると、この`FileNameAllowedChars`を使うメソッド「cleanFilename」があったので、それを活用しました。
■2009-03-24追記■
さらに、以前投稿した↓MobileConverter等を使う際の問題を修正したものも添付しておきます。
http://modxcms.com/forums/index.php/topic,31064.0.html
こちらは、上記に加えて、以下の修正を行っています。
- ファイルアップロード時に`OnFileManagerUpload`イベントを発行していないので、これを発行するように修正
ファイル名「FileUpload-hikidas20090324event.zip」で添付しておきます。