ポップアップ画面を用いたコメント投稿(その5:その4の補足)

ポップアップ画面を用いたコメント投稿(その5:その4の補足)

Posted at January 26,2005 3:00 PM
Tag:[]

その4:コメントフォームのカスタマイズ」で、コメント・プレビュー/コメント・エラー時のサイン・インおよびサイン・アウトについては、

<$MTRemoteSignInLink static="<$MTCommentPreviewIsStatic$>"$>

という記述がサポートされていないため「画面を誘導できません」と書きましたが、Ogawaさんのパッチを流用させて頂くという案がありましたので追記致します。

lib/MT/Context.pm

の1110?1140行目辺りにあるサイン・イン/サイン・アウト用リンクをハンドリングするプログラムに対して下記の通り、赤字を削除して青字を追加します。

sub _hdlr_remote_sign_in_link {
    my ($ctx, $args) = @_;
    my $cfg = MT::ConfigMgr->instance;
       :
    my $comment_script = $cfg->CommentScript;
    my $static_arg = $args->{static} ? "static=1" : "static=0";
    my $static_arg;
    if (defined($args->{static})) {
        $static_arg = $args->{static} ? "static=1" : "static=0";
    } else {
        $static_arg = $ctx->stash('comment_is_static') ? "static=1" : "static=0";
    }
    my $e = $_[0]->stash('entry');
       :
}
 
sub _hdlr_remote_sign_out_link {
    my ($ctx, $args) = @_;
    my $cfg = MT::ConfigMgr->instance;
       :
    my $static_arg = $args->{static} ? "static=1" : "static=0";
    my $static_arg;
    if (defined($args->{static})) {
        $static_arg = $args->{static} ? "static=1" : "static=0";
    } else {
        $static_arg = $ctx->stash('comment_is_static') ? "static=1" : "static=0";
    }
    my $e = $_[0]->stash('entry')
       :
}

これでコメント・プレビューおよびコメント・エラーテンプレートの MTRemoteSignInLink および MTRemoteSignOutLink を

<$MTRemoteSignInLink$>
<$MTRemoteSignOutLink$>

と static属性を省略して記述することで、コメント・リストまたは個別エントリーアーカイブの MTRemoteSignInLink または MTRemoteSignOutLink で設定された static値を引き継ぎます。具体的には、例えば <$MTRemoteSignOutLink$> がHTMLソースに展開されると

<a href="http://~/mt-comments.cgi?__mode=handle_sign_in&static=0&entry_id=3&logout=1">サイン・アウト</a>

のように static値(0はポップアップ画面への誘導を示します)が query string に設定されます。またこれ以降の画面遷移にも引き継がれます。
誤りがありましたらご指摘よろしくお願い致します。

その1:基本動作
その2:カスタマイズ
その3:公開テンプレート修正方法
その4:コメントフォームのカスタマイズ
その5:その4の補足
関連記事
トラックバックURL


コメント

ご無沙汰してました。
忘れ去られてしまったでしょうか?A´▽`;)゚・゚

いろいろあって別にMTを立ち上げてみたんですが、ポップアップコメントを試してみたんです。ですがエントリーアーカイブはクッキー保存出来るのにポップアップしたコメントフォームは出来ません。いろいろ検索して調べてみたんですが全く分かりません。どこが悪いんでしょうか?

[1] Posted by yum : June 4, 2006 11:57 PM

yujiroさん、こんにちわ。
やはり久しぶりに訪れて、この愚問はまずかったですよね。ごめんなさい。
もう少し自分で調べてみます。
失礼しました_| ̄|○))

[2] Posted by yum : June 6, 2006 3:30 PM

>yumさん
こんばんは。
ご返事遅くなってすいません。
現在、コメントをリアルタイムにさばききれないため、ご返事を少し待って頂いている状態になっています(「お待ちください」という返事を書いてしまうと、改めて回答するエントリーが分からなくなるため保留させて頂いてます)。予めご容赦ください。

本題のご質問の件ですが、ポップアップコメント用テンプレートの

<body>

<body onload="individualArchivesOnLoad(commenter_name);">

に変更してください。
また

<script type="text/javascript" src="<MTStaticWebPath>js/commenter_name.js"></script>

は不要ですので削除願います。

以上です。
それではよろしくお願い致します。

[3] Posted by yujiro : June 7, 2006 12:27 AM

yujiroさん、忙しいところスミマセンでした。
いろいろ考えてみましたが、やはり分からず困ってました。で、もう1度質問してみようと来てみたところ、回答頂いてたので嬉しかったです。
でも大変言いにくいんですが、最後のcommenter_name.jsの部分は分かりましたが他が見えてません。申し訳ないんですが、もう1度お答えくださいませんか?宜しくお願いします。

[4] Posted by yum : June 7, 2006 9:33 PM

>yumさん
こんにちは。
大変失礼しました。
上記のコメントを修正しましたのでご確認ください。
それではよろしくお願い致します。

[5] Posted by yujiro : June 8, 2006 1:16 PM

yujiroさん、こんにちわ!
何度もスミマセンでした。でもおかげで保存できるようになりました。
ホント嬉しくてたまりません。
onload="individualArchivesOnLoad(commenter_name);"
↑ここだったんですね。随分長いことエントリーアーカイブと見比べてたんですが、ここには気付きませんでした。yujiroさんのおかげでスッキリですw
ありがとうございました!!

[6] Posted by yum : June 8, 2006 1:32 PM

>yumさん
こんばんは。
ご連絡ありがとうございました。
無事にできたようでなによりです。
ではでは!

[7] Posted by yujiro : June 10, 2006 11:20 PM
コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)