いつもお世話になっておりますWYSIWYGエディター「TinyMCE Plugin for Movable Type
」さんにiBrowserというのが搭載されています。
TinyMCE Plugin for Movable Typeさんの方では、推奨ではないとりーどーみぃーにかいてあったのですが、とてもお役立ち的な感じなので採用させていただきました。
しかし、設定が結構たいへんだったのでいつも通りのめもー
まず、普通にWYSIWYGエディターをセットアップします。
基本的に各フォルダを適宜適切な場所に置くというくらいで動いてしまうので、そのほかに設定はいりません。そして、iBrowserもWYSIWYGエディターと同時にインストールされます。
ここで運命の分かれ道が、MTのシステムをインストールした場所が問題になってきます。
おいらのMTは普通と違う場所に置くようにしているので、通常のMTの使い方と少し違っています。つまり、パスがデフォルトの設定と変わります。なので、iBrowserのconfファイルの中のパスを変更する必要があります。
パスは[My Upload]というフォルダ用のパスと[My Library]というフォルダ用のパスを両方とも設定しなくてはなりません。
マニュアルにも書いてありますが
$tinyMCE_imglibs = array(
array (
text => ‘My Upload’,
value => ‘../../../../../../ibrowser/uploads’,
url => ‘ibrowser/uploads’,
create_dir => false,
upload => true,
delete => true),
array (
text => ‘Main Library’,
value => ‘../../../../../../ibrowser/library’,
url => ‘ibrowser/library’,
create_dir => false,
upload => false,
delete => false
)
);
とかいてある部分の value => “xxxxxx”とurl => “xxxxxx”という部分を書き換えてあげる必要があります。
valueの方は相対パスでかかれていてこのconfファイルがおいてあるところから相対でパスをたどって行きます。一方、urlという方はルート相対でかかれているようです。がこれがうまくルート相対になるのかと思いきやどうやらうまくいかないらしく、ルート直下にibrowserフォルダをおいた場合は/ibrowserとして/を追加してあげる必要があるようです。
違うディレクトリにおいた場合はvalueは階層を追って適宜変更するようにしてください。(※ルート相対でやろうとしたらエラーになりました。)urlの方はルート相対でやはり/を頭につけるようにしてください。
そうすると動くようになるはず。。。というか、アットライズのサーバーは動いたんですよ。
ところがhetemlの仕様なのかどうしてもUPした画像のパーミッションが600になってしまうという現象が起こり、うまく画像が表示されませんでした。
なので、config.phpと同じ階層にある、ibrowser.phpを開いて、511行目のあたりにあるfunction uploadImg($img) の下にある545行目あたりの
if (!move_uploaded_file($data['tmp_name'], $dir_name.$img_name)) { $errors[] = ‘{lang_ibrowser_errorupload}’;
return false;
}
というif文の下に
chmod($dir_name.$img_name,0755);
という1文を加えてあげます。
こうすることでパーミッションを755に変えることができます。
しかし、これだけでは若干不安なので、もしうまくパーミッションの変更ができなかったらエラーをはき出すように変更します。
if (!chmod($dir_name.$img_name,0755)){
$errors[] = ‘{lang_ibrowser_errorchmod}’;
return false;
}
chmod(〜);の文を上記に変えます。
{lang_ibrowser_errorchmod}の部分は文言が指し変わります。これはこちらで勝手にに作ったものなので、エラーがあったとしてもなにも表示されません。そこで、ibrowser.phpと同じ階層にある[langs]フォルダの中のja_shift-jis.js、ja_euc-jp.js、ja_utf-8.jsの3つのファイルの中から使っているMTの文字コードと同じ文字コードのファイルを開いて、34行目(最終行でもよい)のあたりに
tinyMCELang['lang_ibrowser_errorchmod'] = ‘ファイルのパーミッションが変更できませんでした’;
と入れます。(’ファイルのパーミッションが変更できませんでした’のクォーテーションの中は、必ずしも同じでなくてよいです。エラーだということがわかるような文言を入れてあげます)
以上の変更で、hetemlでも問題なく使えるようになります。
欲を言えば、もっとディレクトリを選べる感じで画像マネージャーとして使えるようになるといいなぁと思います。まぁ、欲を言う割に作れるかというと無理なんですけどね

おそらくネーミングから考えても、あくまでもImage Browserという役割なのだと思います。これがあるだけで、普通に便利です。オープンソース万歳!!
ツイートRelated posts: