FileBrowser_Thumbnail Perlインターフェイスのデバッグ

FileBrowser_ThumbnailのPerlインターフェイスの修正を行いました。
この修正により以下の不具合が解消されます。

一部の環境でファイル一覧が表示されない

全てのファイルを画像と仮定して、Image::Magick によりファイルサイズを取得していました。
Image::Magick のバージョンによっては、処理が中断していました。

画像以外のファイルのツールチップに 幅X高さ が表示される

全てのファイルを画像と仮定して、Image::Magick によりファイルサイズを取得していました。
この際に不確実な幅と高さを取得していました。

ダウンロード

FileBrowser_Thumbnail.zip

修正したファイル

修正したファイルは以下の2つです。以下のファイルのみを更新しても問題ありません。

FileBrowser_Thumbnail/connectors/perl/Commands/GetFoldersAndFiles.pl
FileBrowser_Thumbnail/connectors/perl/Commands/Thumbnail.pl

FileBrowser_Thumbnailの修正

FileBrowser_Thumbnailの修正を行いました。

1. サムネイルのキャッシュ作成を選択可能に

(1) 各コネクターの設定ファイルで指定
(2) デフォルトは「使用しない」
(3) ドットファイルでサムネイルのキャッシュを作成していたが、管理がしにくい
(4) ブロードバンド環境ではさほど効果が無いと判断した
(5) サーバの性能が向上してきた

2. デバッグ

(1) ファイル一覧で削除ボタンをキャンセルした時に操作不能になる
(2) PerlコネクターでPDFなどのアイコンが表示されない
(3) 長いフォルダ名・ファイル名の場合にレイアウトが崩れる

3. ダウンロード

FileBrowser_Thumbnail.zip

4. 謝辞

情報をご提供いただいた以下の方々にお礼を申し上げます。

株式会社ケイズ 様
Office Lollipop 様

ありがとうございました。

FileBrowser_Thumbnail Perlインターフェイスのデバッグ

「FCKeditorファイルブラウザー制覇」をご購入頂いた方から、FileBrowser_Thumbnail の Perl インターフェイス(コネクター)が動かないとのご相談を受けました。

御相談いただいたのは、「Office Lollipop」様。

対応を開始してすぐ、ライブラリが不足しているのではないかと考えました。
Perl インターフェイスは Jcode と Image::Magick を必要とします。
確認したところ、Jcode が不足していたとのこと。ライブラリを追加していただき、一応動作いたしました。

ところがファイルのアップロード時にエラーが発生しました。
問題の無いファイルなのに、ファイル名に使用できない文字があるとメッセージを出力してアップロードできません。
こちらで検証しても再現できませんでした。

ご協力をお願いし、ファイル名のチェックをコメントアウトして頂くと、アップロードは出来たものの、アップロードしたファイル名にローカルのパスが含まれているようでした。

もしやと思い IE でテストしたところ、同様の現象を再現できました。
Firefoxでは検証していたのですが、こんな落とし穴があるとは… orz

どうもすいません。

[ 原因 1 ]

IE の場合、POSTパラメータのファイル名にローカルのパスを含んでいた。

[ 原因 2 ]

Perl の場合、パラメータのデコードや PHP 相当の関数を自分で準備する必要があります。
PHP に準じて作成した basename 関数が、ディレクトリの区切りを / としていたため、 でファイル名が区切られていませんでした。

ご協力いただいたおかげで、デバッグが出来ました。ありがとうございます。

修正済みのファイルをアップロードしておきました。

FileBrowser_Thumbnail.zip

2.5 Beta リリース

FCKeditor 2.5 Beta がリリースされました。

FCKeditor – What’s News?

さっさとテストしたいのですが、忙しいのと安定しているか心配です。
プラグインの互換性が気になりますが、しばらく様子見です。

編集エリアに CSS を設定する方法

FCKeditor では、編集エリアの CSS を指定する事ができる。
これにより、実際のページと同じイメージで編集ができる。

指定方法は以下の通り。

1. CSS を外部ファイルで準備する。
2. FCKConfig,EditorAreaCSS に CSS の外部ファイルのパスを設定する。
3. 複数の外部ファイルを指定するには、配列で設定する。

例えば、以下の様に設定する。

FCKConfig.EditorAreaCSS = new Array( '/css/common.css', '/css/box.css', '/css/detail.css' ) ;

動的に指定するには、以下の様にする。

<script type="text/javascript"><!--
...
window.onload = function()
{
...
oFCKeditor.Config['EditorAreaCSS'] = '/js/<?php echo $_SESSION[ 'code' ] ; ?>.css' ;
...
oFCKeditor.ReplaceTextarea() ;
}
...
// -->
</script>

と、ここまでは良いのだが、複数の外部ファイルに動的なものを含めようとするとうまく行かない。
たとえば、以下のような場合。

“編集エリアに CSS を設定する方法” の続きを読む

自作プラグインのデバッグ

FCKeditor 2.4.3 のテストを行った。
多くの細かいバグが修正されており、非常に気持ち良い。
特にIEへの対応がすばらしい。

ついでに自作プラグインのテストも行った。

…Lightboxが、動かない。

2.4 以降で内部的に大幅な修正がされているのは知っていた。
しかし、ダイアログで使うメソッドまで修正されているとは…

その他、FileBrowser_Thumbnailの細かなデバッグを行った。
・画像以外で 横x縦 を表示しないように修正
・一覧を float で表示するよう修正

ダウンロード for FCKeditor 2.4.x :
Lightbox.zip
Lightbox_Plus.zip
FileBrowser_Thumbnail.zip

ダウンロード for FCKeditor 2.3.x :
Lightbox.zip
Lightbox_Plus.zip

2.4.3 リリース

FCKeditor 2.4.3 がリリースされました(2007/06/14)。

FCKeditor – What’s News?

3つの機能追加とバグフィックスです。

目新しい点は、CTL + 右クリックで、ブラウザーのコンテキストメニューが使えるようになった点です。

プラグインは 2.4.1 対応なら問題ないようです。

JavaScript から PHP の関数を呼び出す

JavaScript には、文字エンコーディングの変換機能が無い。

これが出来ると、何かと便利である。

今回は、リンクプロパティーで E-mail を選択したときに、メーラーでサブジェクトと本文が文字化けするとのご相談を受けた。

テストすると以下の様になった。

[FCKedito 2.3.x]
Outlook Express : JavaScript で escape された文字列
Thunderbird : JavaScript で escape された文字列

[FCKeditor 2.4.x]
Outlook Express : JavaScript で encodeURIComponent された文字列
Thunderbird : 正常に表示される

実は、すべてのメールソフトに対応する方法は、今の所無い。
今回はユーザーが最も多いと思われる Outlook Express 向けに対策を行う。

Outlook Express では、mailto: の subject パラメータと body パラメータを Shift-JIS として受け取る。
一方、FCKeditorの JavaScript は UTF-8 で書かれている。
よって、UTF-8 -> Shift-JIS -> encodeURIComponent を行う必要がある。

ここで問題なのが UTF-8 -> Shift-JIS 変換だ。

PHP ならば mb_convert_encoding で一発なのに。そうだ、Ajax で呼び出してしまえ!

と言うことで、以下の様に対策が出来た。

“JavaScript から PHP の関数を呼び出す” の続きを読む