そろそろココログのエントリ移行作業を始めているんですが、なかなかに面倒です.
日記をココログに移行した時に、いちばん便利だと思ったのがポストのやり方でした.
テキストの修飾はボタンひとつ、画像は本体だけ準備すれば、ページに貼り込むためのコードは自動生成、おまけにポップアップの御膳立てまでしてくれる.
基本的には HTML を意識しなくても作業が可能. これは、長続きのためには非常に重要なことかと感じてました.
さて、Movable Type でも基本は同じなのですが、ちょっと手間がかかります.
たくさんのエントリを処理するためには、MT で管理画面と称されている、エントリポストのインターフェースをカスタマイズすることが必要だと分かってきました.
現時点でいちばん面倒なのが、画像ポップアップのためのコード. 7/24 に書いたように Javascript を使うようにしたため、その関数 popupImage を呼ぶためのコードを埋め込まなければいけません.
MT のオリジナルでは、
<a href="img.html" onclick="window.open('img.html', 'popup', 'width=img_width,height=img_height,...'); return false"><img src="img_thum.jpg" width="thumb_width" height="thumb_height"></a>
みたいな感じのコードが出てくるわけですが、これを、<img src="img_thumb.jpg" width="thumb_width" height="thumb_height" onclick="popupImage('img.jpg', img_width, img_height)">
のように改変する必要があります.オリジナルのを貼り込んどいて、カット&ペーストで直すのはかなり面倒です. 最初から下のようなコードを吐いてくれれば楽.
ということで、改造してみました.
調べると、CMS.pm というファイルをいじれば良いことが判明. パスは、/lib/MT/App/CMS.pm.
エディタで開いて、"window.open" で検索します. 1ヶ所だけ hit するはずです.
その前後の抜きだし.
my $link = $thumb ? qq(<img src="$thumb" width="$thumb_width" height="$thumb_height" alt="" />) : q{<MT_TRANS phrase="View image">};
return $app->translate_templatized(<<"HTML");
<a href="$url" onclick="window.open('$url','popup','width=$width,height=$height,〜'); return false">$link</a>
ここで間違いないようです.
$link というのもここにしか出てきません.
my $link = 〜 のところで、$link にサムネイル画像表示のコードを入れているようです.
その下の、<a href=〜>$link</a> のところが、ポップアップまで含んだ最終的なコード.
よって、my $link = 〜 のところに、onclick="popupImage〜 を書き加え、下の部分は a タグを全部消して、単に $ link とすればよさそうです.
このようになります.
my $link = $thumb ? qq(<img src="$thumb" width="$thumb_width" height="$thumb_height" onclick="popupImage('$url', width, height)" align="left" Hspace="10">) : q{<MT_TRANS phrase="View image">};
return $app->translate_templatized(<<"HTML");
$link
画像表示位置関係も、少し付け加えてます.
改変した CMS.pm をアップロード.
実際に使ってみると、このようにうまくいきました.

実は一点直っていないところがあるのでして、関数 popupImage に渡す URL は画像のものでなくてはならないのですが、上のやり方ですとポップアップ表示用の html ファイルの URL になってしまってます.
画像を同じパスにアップするようにすれば、画像ファイルと html ファイルはパスも一緒、拡張子以外のファイル名も一緒になります. よって、吐き出されたコードの該当部分で、拡張子を html から jpg など画像ファイルのものに変更すればよいだけとなり、これくらいなら手作業でも十分でしょう.
これも Perl で書ける処理だとは思いますが、自分には無理なのでこの辺にしときます.
ポスト環境の改善は、まだまだ続ける必要がありそうです.
