2005年01月26日
●ポップアップ画面を用いたコメント投稿(その5:その4の補足)
「その4:コメントフォームのカスタマイズ」で、コメント・プレビュー/コメント・エラー時のサイン・インおよびサイン・アウトについては、
<$MTRemoteSignInLink static="<$MTCommentPreviewIsStatic$>"$>
という記述がサポートされていないため「画面を誘導できません」と書きましたが、Ogawaさんのパッチを流用させて頂くという案がありましたので追記致します。
- lib/MT/Context.pm
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:
http://yujiro.dyndns.org/blog/koikikukan/mt-tb.cgi/484
トラックバック実行後、タイムアウトした旨のメッセージが表示されることがありますが、トラックバック先の処理は(これまでの経験上)正常に終了しています。正常に送信されたかどうかはトラックバック先の個別アーカイブページ等をご確認ください(タイムアウトについてはこちらの記事を参照ください)。
また同一のトラックバックが重複してしまった場合、こちらで気がついた時に適宜削除しておりますので削除のご連絡は不要です。ただし期間が空いている場合(数日とか)は気がつかない場合がありますのでご連絡ください。


