TinyMCE for MT 1.31Jaに入れ替え

  • 投稿日:
  • by
  • カテゴリ:

愛用している、MT3.3xでWYSIWYGでの記事編集を実現するプラグインTinyMCE for Movable Typeがいつの間にか1.31になっていた。しかも3ヶ月も気づいていなかったなんて。。。
追加された機能を見ると、MT4似のファイルマネージャが追加されてるじゃないか!これまでは、画像を埋め込むときに、一旦MT標準機能でアップロードしてから、そのURLをコピペで埋め込んでて面倒だったんだけど、埋め込むGUIを使って直接アップロードもできるようになったのは超便利。それ以外の部分も色々と機能アップしてるし。MT4でもリッチなエディタが付いたけど、乗り換える理由がいまひとつ見あたらなくて当面様子見を決めたオレとしては、ますますMT3の寿命が延びた感じだ。作者様、ありがとう!

ちなみに、1.20から入れ替えるにあたってハマったところは特になく、せいぜい、CGIのフォルダがMTのコンテンツとは別パスでphpを許してなかったんで、ISMでphpをドキュメントタイプとして追加したのと、file_manager_config.phpに記述する、pics/files/mediaのパスとして相対パスじゃなく c:/ で始まる絶対パスを書いたくらい。フォルダのアクセス権はインターネットゲストアカウントに書き込み権限を与えた。
ただ、実際に入れ替えてからいじる必要のある箇所があった。

で、期待のファイルマネージャ機能を使ってみてアレ?と思うのが、フォルダ内の画像ファイルのサムネイル表示。ルートフォルダは設定ファイル で指定するんだけど、そこにサブフォルダを作って画像をアップロードすると、イメージブラウザでサムネイルが表示されない。ブラウザでソースを表示してみると、画像のパスとしてサブフォルダが挿入されていないみたいだ。

このサムネイル表示を作っているソース file_browser_include.php を見てみると、imgタグのオプションとして、正しいフルパスが渡っておらず、ファイルタイプごとのルートフォルダが指定されているだけのようだ。
なもんで、以下のように変更して正しくサムネイルが表示されるようになった。この変更では、'/' を挿入している箇所を削ってるけど、これは、オレの環境では file_manager_config.php で設定しているディレクトリの末尾にもスラッシュをつけているから、余分なスラッシュの挿入を削除したため。

echo "<td align='center'><a class='file' href='#' onClick='fileSelected(\"" . $requested_dir . $files[$i] . "\");'><img src='" .$url_dir. $requested_dir. $files[$i] . "' width='" . $file_width . "' border='0px'></a><br><a href='#' onClick='delete_file(\"" . $files[$i] . "\")'><img border=0 src='" . $delete_image . "'></a> " . $files[$i] . "</td>\n";

ファイルマネージャがちゃんと動くようになって良かったと思ったのもつかの間、このblogのRSSフィードを購読している会社のOutlookで1つ気づいたことが。TinyMCE for MTの既定の設定の場合、pics/files/mediaのURLのパスはドメインからの相対パスで設定ファイルに記述されていて、生成されるHTMLのソースにも相対パスで書き込まれる。ブラウザで見るだけなら問題ないんだけど、Outlookでフィードの記事を見ると、埋め込まれた画像のパスが相対パスなんで表示されていなかった。
ここは、単に file_manager_config.php の /pics の部分を http:// から始まる絶対パスに書き換えることで期待通りの結果になったのでハマったうちには入らない。注意点って感じか。