2004年10月11日

MT無頼控 其の弐(IF文)

新しいHINAGATAがやっているみたいに、コメントが一個もなかったら(って、まじで一個もないんですが、私んち)、"コメントはまだありません"って表示させたいと思いました。

でも、これができるMTIfNonZeroというタグはMOVAVBLETYPEのバージョン3以降にしかないみたい。

検索してみると、ちょうどいいものがみつかりました。
MTIfNonZeroタグを説明しているのですが、2.6でおなじようなことをしていたとそのソースが載っているではありませんか。

それをプラグインにして、実現!

公開されているソースの前後にちょっと書きくわえて、MTIFTrue.plとしてセーブ、MTのプラグインフォルダにアップロードします。

package MT::Plugin::IFTrue;
use vars qw( $VERSION ); $VERSION = 0.1;

MT::Template::Context->add_conditional_tag(IfTrue =>
\&_if_true);
sub _if_true { my ($ctx, $args) = @_; $args->{tag} =~ s/^MT//; my $handler = $ctx->handler_for($args->{tag}); if ( defined $handler ) { $handler->($ctx, $args) and return 1; } return 0; }

1;

でもって、ここをみて、MTElseのバグの修正をおこないます。
バージョン2.661だと上半分のBuilder.pmの修正だけでだいじょうぶなようです。
たぶん。いまんところつかえてます。

こうしたらもう、MTIfNonZeroタグとおなじようにつかえます。
こちらの、
<MTIfNonZero tag="MTEntryCommentCount">>を<MTIFTrue tag="MTEntryCommentCount">>に、</MTIfNonZero>を</MTIFTrue>にする。
プラグインファイルのIFTrueをMTIfNonZeroとして宣言すればこの変更もなしにつかえるでしょう。

トラックバック

» カスタマイズ vol.36 from G@MANIA ver.MT - CODE:Hyena -
コメント、トラックバックがない場合はリンクを非表示する Movable Typeのデフォルトの状態だとリンク、トラックバックがない場合でもMain Indexなどに表示されるそれぞれの項目にはリンクが貼られてしまいます。色々なBlogでたまに投稿がない場合はリンクされていないの... 続きを読む

» MT3.xのMTIfNonZeroをMT2.6xでも from cocoons.org*
度々参考にさせてもらっているMagic Whiteさんのエントリで、コメントが無いときに「コメントがありません」エントリが無いときに「エントリがありません」と表示できる「MTIfNonZero」タグがMTにはあるととっても良い情報が・・・! しかし・・・ MT3.xじゃないと使えま... 続きを読む

コメントする