MT3.0の「コメント・プレビュー」テンプレートを変更

dw040907-1.gif
Movable Type 3.0対応のMacromedia風テンプレート作成に当たっての経過報告です。一番の要となる「個別エントリーアーカイブ」のページをなんとか作ることができてほっと一息ついていたのですが、よくよく見たら今回のバージョンから「コメント・プレビュー」「コメント・エラー」のみならず、「コメント・保留」などのテンプレートも追加されていて、中を開いてみたらこのコメント回りのテンプレートを自由にカスタマイズするのは至難の業、という状況になっていることに気がつきました。

試しに「コメント・プレビュー」のソースを開いてみると、「個別エントリーアーカイブ」のテンプレートとは違って入力フォームがあるべき場所には、

<MTCommentFields preview="1">
と一行入っているのみです。このタグが、下の図の赤い枠で囲まれた部分全てを吐き出していることになるので、ページの大枠をデザインすることは可能ですが、フォームの部分の見栄えや文言を直したい、と思った場合は、この「コメント・プレビュー」テンプレートだけを修正しても不可能、ということが分かります。
dw040907-2.gif
まあ、細かい部分を気にしなければいいだけのことですが、それでも細部まで自分好みにアレンジしたい、と考える人も多いのではないでしょうか?そこで、ちょっとMT内部のファイル(Perlのモジュール)を調べてみると、頑張ればこの辺のソースの変更も決して不可能ではないことが分かりました。要は、サーチテンプレートの変更と同じ要領ですね・・。

Movable Type本体が入っているディレクトリの名前を「mt」とした場合、「コメント・プレビュー」のページのフォーム部分のHTMLが埋め込まれているファイルが、

(1)mt/lib/MT/Template/Context.pm

というモジュールで、そこに書かれている一個一個の「用語」を日本語に置き換えているのが、

(2)mt/lib/MT/L10N/ja.pm

というモジュールのようです。つまり、(1)で一度フォームのHTMLを生成してから、(2)を通して日本語に変換している、という流れになっていると思われるので、(1)でHTML編集する場合に日本語を使用してはならない、という点に注意してください。
デザインの変更についてのみ(1)のContext.pmで行い、日本語部分を変更したい場合は(2)のja.pmの中から一つずつ探し出して、下記のように書き換えていきます。
(※具体的には1020行付近の『## lib/MT/Template/Context.pm』から始まるブロック内)

「サイン・インを確認しました、」→「サインインを確認しました☆、」
そして上記2つのファイルをFTPでアップロードすれば、同じフォームを呼び出しているコメント・プレビュー、コメント・エラーの両方を、思い通りの見栄えに変更することができます。もし、ここまで徹底的にカスタマイズしたい、という方がいましたらぜひこの方法で試してみてください。
dw040907-3.jpg
(ja.pmをテキストエディタで編集)

※なお、この変更はMT一体につき共通で反映されてしまうので、もし同じMovable Typeで複数のブログを構築している場合には、フォーム部分のソースが共通で変わってしまうことになります。その点だけ注意してください。

・・そんなわけで「Macromedia風テンプレート for MT3.0」の方は、後はサーチテンプレートだけ作ればほぼ完成という所まで進んでいます。これから最終調整と配布ページの作成という段階に移りますので、もうしばらくお待ちください。それにしても、バージョン3用のテンプレートはTypeKey回りで何度も設定を変えつつ動作確認しなければならないので、思ったよりも骨が折れますね・・。
ちなみにWin IEでTypeKey設定されたページからサインインしても、一度ブラウザをリロードしないと結果が反映されないのですが、これはどうも既知の不具合のようです。

トラックバック(8)

2.661から3.11jaにアップデートした際にいくつか直したい所があったので修... 続きを読む

最近何件かコメントを頂きましてとても嬉しいのですが、今までコメント回りのカスタマ... 続きを読む

ブログを独自に動かそうと思ったら、スパムコメントとスパムトラックバックの対策は不... 続きを読む

風のまにまに号 : MT3.0の「コメント・プレビュー」テンプレートを変更 へ... 続きを読む

'コメント・プレビュー画面'に誤字があるのを発見したので修正しました。 続きを読む

対策方法が自分のスキル外だった為に放置していた、コメントプレビューをしたときにフォームのテキストエリアが枠からはみ出している問題を、なんとかやっと解決しました。... 続きを読む

普段、自分がコメントすることも少ないので気づかなかったが、カスタマイズできている... 続きを読む

自分には直接関係ないけど、記事に対するコメントのプレビューページのカスタマイズを... 続きを読む

コメント(6)

「Macromedia風テンプレート for MT3.0」楽しみにしております。
ところで、

>一度ブラウザをリロードしないと結果が反映されないのですが、これはどうも既知の不具合のようです。

上記の件につきまして、私は下記のページを参考にして、不都合をなおしました。

http://blog.rislim.net/archives/000161.php

もし、良かったら、ご覧になって下さい。

rasaさん、こんばんは。
情報ありがとうございます。早速参考にさせていただきます。
それにしても、一体どうして効かないんでしょうかね・・?

Comment.pmを編集したりする必要は無いと思います。
私のサイトはMT3.0を使って運営しています。
で、コメントプレビューは私のサイトを見たらわかると思いますが、オリジナルなデザインです。
ごくごく普通に、2.xと同じような感じでMTCommentPreview~のタグを使ったら構築できました。
自分のやり方の方が何かと安全でいいと思いますので、書いてみました。

Kさん、情報ありがとうございます。
MTCommentPreview~のタグを使う方法も試してはみたのですが、ソース上はフォーム内のvalue(入力内容)が展開されているものの、なぜかブラウザ上に表示できない、という状態になってしまいました。
デフォルトテンプレートのようにTypeKey設定のON/OFFによる分岐をさせているとこうなってしまうのか、原因がよく分からなかったのですが、TypeKeyの分岐をさせない形でそれぞれのパターン別にテンプレートを用意すれば、うまくいきそうな予感もします・・。
とりあえず新テンプレートの配布版の作成を優先させて、その後でこの辺の動きをもうちょっと検証してみたいと思います。

試しに Movable Type 3.0 をさわっている(いじっている)のですが、コメントプレビューの FORM タグ部分に該当する HTML が埋め込まれているのは、

mt-dir/lib/MT/Template/Context.pm

のようです。
K さんがおっしゃるように、MT のコアモジュールになるのでリスクが伴うのは確かだと思います。
編集する場合は、デフォルトのモジュールをバックアップしとくのが無難ですね。

HiroNさん、こんにちは。
確かに該当部分は
/lib/MT/Template/Context.pm
の方でした。私もこちらをいじっていたのに、なぜか書き間違えていたようです・・。エントリーの方も直しておきますね。
いずれにしてもこの方法は、大手を振ってお勧めできないのは、私も同感です。

コメントする

お気に入りBlog一覧




Powered By BlogPeople
BlogPeopleに追加

Skyphoto People

お役立ちツール

このサイトについて

多摩川のほとりでのんびり暮らす3人家族の日常と果てなき好奇心を綴ったブログです。

最近のコメント

バックナンバー

Timelog