ポップアップ画面を用いたコメント投稿(その5:その4の補足)
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 に設定されます。またこれ以降の画面遷移にも引き継がれます。
誤りがありましたらご指摘よろしくお願い致します。
- 画像のポップアップウィンドウをカスタマイズする
- ポップアップウィンドウ追加
- ポップアップ画面を用いたコメント投稿(その4:コメントフォームのカスタマイズ)
- ポップアップ画面を用いたコメント投稿(その3:公開テンプレート修正方法)
- ポップアップ画面を用いたコメント投稿(その2:カスタマイズ)
- ポップアップ画面を用いたコメント投稿(その1:基本動作)
ご無沙汰してました。
忘れ去られてしまったでしょうか?A´▽`;)゚・゚
いろいろあって別にMTを立ち上げてみたんですが、ポップアップコメントを試してみたんです。ですがエントリーアーカイブはクッキー保存出来るのにポップアップしたコメントフォームは出来ません。いろいろ検索して調べてみたんですが全く分かりません。どこが悪いんでしょうか?
yujiroさん、こんにちわ。
やはり久しぶりに訪れて、この愚問はまずかったですよね。ごめんなさい。
もう少し自分で調べてみます。
失礼しました_| ̄|○))
>yumさん
こんばんは。
ご返事遅くなってすいません。
現在、コメントをリアルタイムにさばききれないため、ご返事を少し待って頂いている状態になっています(「お待ちください」という返事を書いてしまうと、改めて回答するエントリーが分からなくなるため保留させて頂いてます)。予めご容赦ください。
本題のご質問の件ですが、ポップアップコメント用テンプレートの
<body>
を
<body onload="individualArchivesOnLoad(commenter_name);">
に変更してください。
また
<script type="text/javascript" src="<MTStaticWebPath>js/commenter_name.js"></script>
は不要ですので削除願います。
以上です。
それではよろしくお願い致します。
yujiroさん、忙しいところスミマセンでした。
いろいろ考えてみましたが、やはり分からず困ってました。で、もう1度質問してみようと来てみたところ、回答頂いてたので嬉しかったです。
でも大変言いにくいんですが、最後のcommenter_name.jsの部分は分かりましたが他が見えてません。申し訳ないんですが、もう1度お答えくださいませんか?宜しくお願いします。
>yumさん
こんにちは。
大変失礼しました。
上記のコメントを修正しましたのでご確認ください。
それではよろしくお願い致します。
yujiroさん、こんにちわ!
何度もスミマセンでした。でもおかげで保存できるようになりました。
ホント嬉しくてたまりません。
onload="individualArchivesOnLoad(commenter_name);"
↑ここだったんですね。随分長いことエントリーアーカイブと見比べてたんですが、ここには気付きませんでした。yujiroさんのおかげでスッキリですw
ありがとうございました!!
>yumさん
こんばんは。
ご連絡ありがとうございました。
無事にできたようでなによりです。
ではでは!