Movable Type
コメントプレビュー時のフォームのはみ出しを修正しました。
対策方法が自分のスキル外だった為に放置していた、コメントプレビューをしたときにフォームのテキストエリアが枠からはみ出している問題を、なんとかやっと解決しました。なんでスキル外だったかというと、「個別エントリーアーカイブ」のテンプレートには、コメント投稿用のフォームが書かれているのですが、「コメント・プレビュー」のテンプレートの本来フォームが入っているところには、
<MTCommentFields preview="1">
という一文が入っているだけでフォームらしきモノが確認できなかったんですよ。最初、「個別エントリーアーカイブ」のフォームデータを読みに行ってるのかと思ったのですが、全く反映されないので、システムに用意されたモノを読み行ってる事に気が付いて、そこを修正すればはみ出しを解決できると思ったのですが、その格納されている場所が分からなかったので、諦めていたんですよ。
ところが、最近になって「風のまにまに号」さんのエントリー「MT3.0の「コメント・プレビュー」テンプレートを変更」をみつけて、フォームデータの読み取り先の場所等を解説していたので、さっそくエントリーをたよりに修正作業をしたというわけです。
ということで、覚え書きを兼ねて、手順を書いておきます。
1. MTの入っているディレクトリから「lib」というディレクトリを見つけます。さらにその中の「MT」というディレクトリを開き、その中の「Template」というディレクトリに入っている「Context.pm」というファイルにフォームが含まれています。テキストエディターで開いてみると分かると思うのですが、フォーム関係のテキストは英文で書かれています。これは、別の場所に書かれているファイルをシステムが参照して英文のテキストを日本文に変換している為です。従って、ここの英文を日本文に変更してしまうとエラーの原因になってしまうので、変更するのはソースコードのみにしておいて下さい。ほとんどの場合、テキストエリアの文字数変更と改行ダグの打ち込みぐらいだと思います。
2.次に、テキストを変更する場合は、「MT」ディレクトリまで戻り、その中にある「L10N」というディレクトリの中にある「ja.pm」というファイルがあります。ここに書かれている該当する一文を探して変更すれば、テキストを任意のモノに変更できます。
これだけでOKです。意外と簡単です。ただ、MTのシステムをいじってしまうため、全くデザインの違う複数のblogを1つのシステムで運用されていると、設定したフォームに固定されてしまうので注意が必要です。
後、「TypeKey」のアカウントを持っていないと書き込めないと思われているようなので、「個別エントリーアーカイブ」のフォームに説明文を追加しました。フォーム外に追加するとサインインをしたときに消えずに出てしまいますので、ちょっと変わったところに入れてサインイン時には消えるようにしました。やり方は「個別エントリーアーカイブ」の2つ目のフォームの下記の場所を探して、
<div id="name_email"> <p><label for="author">名前:</label>
ここの間に<p>タグを入れて、テキストを入れました。
<div id="name_email"> <p style="font-size: 12px;">TypeKeyアカウントを持っていない方でも、コメントの投稿はできますが、要承認のコメントとして取り扱われて承認作業が完了するまでページには表示されません。</p> <p><label for="author">名前:</label>
こんな感じで終了。簡単なんですけど、結構苦労しました。これでコメントが増えるか?
スパムは、たのまなくてもいっぱい来るんだけどね〜。