MovableTypeの記事にコメントを頂いた際、コメントの投稿者がメールアドレスを記入すると、そのまま投稿者のメールアドレスへとリンクが張られてしまいます。
MTの設定で、メールアドレス(&名前)を未記入にして投稿してもらう事もできますが、メールアドレスはともかく、名前が未記入というのは、色々と不都合があるので避けたい所です。
しかし、私自身、メアドはさらしたくないというのが本音なので、
nlog(n) - VineLinux, MovableType, デジカメ日記さんを参考に、改造してみました。
続きを読む
- ウェブログの設定で「匿名コメントを受け付けない」設定にする
- テンプレートの変更で「メールアドレスを非表示にする」とする
- テンプレートの<$MTCommentAuthorLink$> を<$MTCommentAuthorLink show_email="0"$>に書き換える
- 再構築
という事で、上記のような設定にしました。
これで、記入して頂いたメールアドレスは非表示になり、URLが記入されている場合は、メールアドレスの代わりに、投稿者のURLがリンクされるようになりました。
ところで、MTのコメント投稿者のURLは、CGIを経由しているため、一見しただけでは相手先のリンク先はわからないし、面倒くさいな〜と思いました。
すると、上記
nlog(n) - VineLinux, MovableType, デジカメ日記さんにて、続きの記事があり、URLをダイレクトでリンクさせる方法が紹介されていました。
<$MTCommentAuthorLink show_email="0"$> の部分を、下記のように書き換え。
<MTIfNonEmpty tag="MTCommentURL">
<a href="<$MTCommentURL$>" title="<$MTCommentAuthor$>"><$MTCommentAuthor$></a>
<MTElse>
<$MTCommentAuthor$>
</MTElse>
</MTIfNonEmpty>
MovableTypeのバージョンが、3.1x以降なら、これで終了なのですが、2.661の場合、<MTElse> が正常に動作しないようで、MTpath/lib/MT/Builder.pm の書き換えも必要です。
MTpath/lib/MT/Builder.pm の 98 行目以降の書き換え
(赤字部分を追加)
- my($tokens, $uncompiled);
my $tokens_else;
(中略)
- $tokens = [ grep $_->[0] ne 'Else', @{ $t->[2] } ];
$tokens_else = [ grep $_->[0] eq 'Else', @{ $t->[2] } ];
(中略)
- $ctx->stash('tokens', $tokens);
$ctx->stash('tokens_else', $tokens_else);
元に戻す