Movable Type 備忘録

 コメント投稿フォームをポップアップ画面にする

  • Jun172006
  • Vote:
    http://bizcaz.com/archives/2006/06/17-214919.php
  • Categories: Customize
  • Tags:
  • Social Bookmark

エントリ・ページにあるコメント投稿フォームを外に取り出して、ポップアップ表示させるカスタマイズを紹介します。

ネットサーフしているとたまにコメント投稿フォームがポップアップされるのを見かけたりします。 コメント投稿フォームを外に出す利点といったら、

  • テンプレートがすっきりする。
  • 記事を見ながらコメントできる…そんなことするかなぁ。
  • コメント数が多くなった場合ページが見やすくなる…これが最大のメリットかな。

う~ん…あまり思い浮かばないけど、人それぞれの好みなのでとやかくは言いません。
この先気が変わっていつでもポップアップ表示させられるように備忘録としてメモっておきます。

カスタマイズ方法

まず、コメント投稿用のテンプレートを作成します。

MovableType(ムーバブルタイプ) 3.2では、とりあえずデフォルトのテンプレートを流用して、各自のサイトに合ったテンプレートを作成します。
MovableType(ムーバブルタイプ)の管理画面から、テンプレート>システムと移動するとコメント一覧というリンクがありますので、それがコメント投稿用のテンプレートです。 テンプレートを作成したら、既存のテンプレートに上書きして保存します。

次に、コメント・ポップアップの呼び出し元のテンプレートを変更します。 エントリ・アーカイブのテンプレートを変更します。 まず、テキストファイルに既存のテンプレートをバックアップしてください。 そして、<MTEntryIfCommentsOpen>~</MTEntryIfCommentsOpen>までを以下のコードと差し替えます。

  1. 変更前
  2. <MTEntryIfCommentsOpen>
  3.     :
  4.     :
  5.     :
  6. </MTEntryIfCommentsOpen>
  7.  
  8. 変更後
  9. <MTEntryIfCommentsOpen>
  10.     <a href="<$MTCGIPath$><$MTCommentScript$>?entry_id=<$MTEntryID$>" onclick="OpenComments(this.href); return false">コメントをお願いします。</a>
  11. </MTEntryIfCommentsOpen>

差し替えたら保存して再構築します。 人によってはコメントに関連するカスタマイズを行っていたりすると思いますが、それらは各自で対応してください。

最後に、コメント・ポップアップ用のJSを追加します。 MovableType(ムーバブルタイプ)インデックス・テンプレート一覧の中に、mt-site.js というJSが既にあると思いますので、最後の方に以下のコードを追加します。

  1. function OpenComments (c) {
  2.     window.open(c,'comments','width=480,height=580,scrollbars=yes,resizable=yes,status=yes');
  3. }

追加したら、保存して再構築します。

ポップアップ表示確認します。 エントリページにフォームが消えて「コメントをお願いします。」リンクが表示されてますね。 そのリンクをクリックすると、コメント投稿フォームのポップアップ画面が表示されます。

以上で、コメント投稿フォームを外に出して、ポップアップ表示させることができました。

では。SEE YOU。

 Trackback Pings(0)

No trackbacks found.

 Comments(6)

#1: Posted by nuts @ April 5, 2009 [REPLY]
user-pic

コメント入力フォームをポップアップしたくて色々調べていてこちらのページにたどり着きました。
上記の様にすると、ポップアップ画面が立ち上がる様になるのですが「不正な要求です」というエラーが出て
コメント入力フォームが表示されません。
現在使っているのはMT4.25です。
上記以外の作業が必要なのでしょうか。
アドバイス頂けるとうれしいです。

#2: Posted by Author Profile Page bzbellからnutsへの返信 @ April 5, 2009 [REPLY]
user-pic

>>1 nuts さん

こんばんわ^^

それは mt-comments.cgi の URL もしくはパラメータが不正だから表示されるエラーです。
テンプレートの修正にて、MTCommentScript( mt-comments.cgi )のパラメータを MT4.x 用に変更すれば大丈夫なのではないでしょうか。

ご存知かと思いますが、この記事は MT3.2 当時のものです。
ですので、MT4.x で適用するには MT4.x 用に読み替えて頂かないと正しく動作しないことがあります。

#3: Posted by nuts @ April 8, 2009 [REPLY]
user-pic

bzbell様
アドバイスありがとうございます。
こちらの記事がMT3.2当時のものである事は承知しておりましたが、そのまま使えるのかな・・・と素人憶測で導入してみました。

>テンプレートの修正にて、MTCommentScript( mt-comments.cgi )のパラメータを
>MT4.x 用に変更すれば大丈夫なのではないでしょうか。

とありますが、具体的にどの様に変更すれば良いのでしょうか。

本当に素人質問で申し訳ありません。
ポップアップ投稿画面にどうしてもしたいため、お手数をおかけ致しますがお力を貸していただけませんでしょうか。
よろしくお願い致しますm(__ __)m

#4: Posted by Author Profile Page bzbellからnutsへの返信 @ April 8, 2009 [REPLY]
user-pic

>>3 nuts さん

こんばんわ^^

えと、MT4.x では MT3.2 とは違って「コメント一覧」システムテンプレートというのはありません。
ですので、この記事に通りにカスタマイズしてもダメですね。

ちょとお待ちください。
実際にわたしがやってみてその結果を記事にしますので参考にしてください。
また、もし一筋縄ではいかないようでしたら別途ご連絡いたしますもじもじ

#5: Posted by Author Profile Page bzbellからnutsへの返信 @ April 8, 2009 [REPLY]
user-pic

>>3 nuts さん

MT4.x では無理かもしれません。

  1. コメント投稿のしくみが MT3.2 の頃に比べて変更されています。 その為、この記事でご紹介してる方法ではできません。
    コメントフォームを外部ページとして保存して、ポップアップではその外部ページを表示するようにすればフォームだけは表示できます。 ですが、投稿/プレビューができなくなります。
    また、外部ページにしてしまうと、エントリ ID を渡すことができなくなります。
    ※ブログを PHP 化してるのであれば可能だと思います。

  2. MT4.x ではスパムコメント対策用のデータを動的に生成してます。
    そのデータがないとコメント投稿できません。

  3. コメントのスレッド機能も使えなくなります。
    mt.js に結構依存してたりします。

上記のことから、MT4.x でコメントフォームをポップアップするのはちょと至難の業だと判断しましたキョロキョロ

以上ご報告までもじもじ

#6: Posted by nuts @ April 9, 2009 [REPLY]
user-pic

bzbell様
検証までして頂いて本当にありがとうございますm(_ _)m

私も自分なりに色々試してみたのですが、どうしても解決法が見つからずbzbell様にお願いしてしまいました。
そういう訳という結論に達せなかったのですが、さすがです。
phpの知識が全くないのでサイトをphp化するのは無理かなと思います・・・^^;
どうにかスタイリッシュに投稿フォームをページに組み込む方法で考えて行きたいと思います。

本当にありがとうございました。
色々ためになる情報が満載ですので楽しみにサイトを拝見させて頂きます^^

 Post a Comment

 

コメント用フィード