August 29, 2003
テンプレート上で条件文を使う。

 Individual Entry Archive(個別アーカイブ。このBlogでは、各エントリーのタイトルや更新時間をクリックするとジャンプします)の表示を少しいじってみました。
 コメントが1件以上存在するときは普通にその内容を表示しますが、コメントが0件の場合、その寂しさを表現する(?)為に↓のような表示をさせる事にしました。
no_comment.gif
 このような処理を行うためには、条件(この場合はコメントの数)によって、適用されるテンプレートの内容を変化させる、perl等での「 if文 」の処理が必要になります。
 そうした処理は、Movable Type単体では困難(少しはできる?)なので、Movable Typeの機能を拡張させるplugin(プラグイン)を使用する事にします。
 
 なお、この処理は
Plastic Vein > テンプレート上でのコーディング
http://stargazer.s7.xrea.com/x/archives/000020.html

のアイデアを元にしています。素敵なアイデアに感謝!

 MovableTypeのプラグインは、
 MT Plugin Directory (http://mt-plugins.org/)
からダウンロードできます。

 ここからダウンロードしたプラグインを、インストールすることにより、新しく使えるタグを増やして、更にMTを便利に使う事ができるようになるわけです。
 インストールは、「plugin」ディレクトリー(mt.cgiがあるディレクトリーと同じ階層にある)にプラグインのファイル(xxx.pl)をコピーするだけでOK(プラグインによって異なる場合もありますが)です。


 個別アーカイブの表示をコメントの数によって分岐させるために、今回使ったのは

Compare
http://mt-plugins.org/archives/entry/compare.php
というプラグインです。

 このプラグインでは、二つの値を比較してそれらが「等しい」「異なる」「どちらかがどちらかより大きい」などの条件で、異なる結果を出力する事ができます。また、条件となる値を複数指定できる(elseやelseif的な指定、「aが0,1,2の時、それぞれどうするか」という指定ができるので多様な表現ができます)

 詳細は、
http://mt-plugins.org/local/CompareReadMe.php
を参照してください。

 インストールに関しては、普通に
http://www.staggernation.com/mtplugins/Compare.tar.gzをダウンロードして、
Compare.pl をMTフォルダ直下のpluginフォルダにアップロードすれば良いです。

 今回の処理は、
アーカイブのテンプレートの該当部分に
<MTIfEqual a="[MTEntryCommentCount]" b="0" numeric="1">
コメントはまだありません (ノ_・。)
</MTIfEqual>
<MTIfGreater a="[MTEntryCommentCount]" b="0" numeric="1">
<MTComments>
<$MTCommentBody$>
Posted by: <$MTCommentAuthorLink spam_protect="1"$> at <$MTCommentDate$>
</MTComments>
</MTIfGreater>
(CSSの設定は省略しています)
と表記する事で、問題なく、動きました。


 Compareの他にも、条件文の処理を可能にするプラグインには
正規表現を使ったif文を実現する
Regex
http://mt-plugins.org/archives/entry/regex.php
(ifによる分岐だけで、elseifっぽくは使えない感じですが)

要素が空であるか否かでの分岐を行う
IfEmpty
http://mt-plugins.org/archives/entry/ifempty.php
(Regexが必要)
なんかがあります。

また、最後の手段として、
PerlScript
http://mt-plugins.org/archives/entry/perlscript.php
を導入すれば、テンプレート内にperlのスクリプトが記述できるようです。

 これは私もまだ試してないですが、、
 なんと言うか、そんなことしたら、なんかMTタグの存在意義があやふやになってしまうというか、なんでもアリになりすぎになってしまう気も。。

Posted by Ken.eu at August 29, 2003 06:01 AM | コメント (2) | トラックバック (11)
コメント

お邪魔します。
素晴らしいっす!!
ぜひ使わせていただきます。
それにしてもプラグインって有効なものが
多いんですね、ビックリしました。
よくプラグインの例として出されるのが
クリスマスまで後何日プラグインとか
なので、そんなのばっかりかと思ってました(笑)。
さっそく帰ったら実装してみます。

Posted by: Stargazer at August 29, 2003 12:21 PM

すみません、ping二回打ってしまいました。
お手数ですが削除のほどお願いいたします。
すみませんでした。

Posted by: Stargazer at August 30, 2003 01:56 AM
コメントの投稿!









Remember personal info?







トラックバック

このエントリへのトラックバックURL:
http://nanitozo.com/log/cgi/mt/mt-trackback.cgi/186

トラックバック元のサイト
テンプレート上でのコーディング
Excerpt: Indivisual Entry Archiveで、コメントが0件の場合には 「コメントがありません」等のメッセージを表示したいんだけど、 自分が調べた感じMTのタグでは無理っぽい。 仕方ないのでこんな感じの...
Weblog: Plastic Vein
Tracked: August 30, 2003 01:31 AM
テンプレート上でのコーディング
Excerpt: Indivisual Entry Archiveで、コメントが0件の場合には 「コメントがありません」等のメッセージを表示したいんだけど、 自分が調べた感じMTのタグでは無理っぽい。 仕方ないのでこんな感じの...
Weblog: Plastic Vein
Tracked: August 30, 2003 01:31 AM
「コメントはまだありません」
Excerpt: エントリーをひとつずつ表示させた時や「コメントを読む/書く」をクリックした時に
Weblog: a sweet room :: Brog
Tracked: October 17, 2003 03:01 PM
デザイン変更&その他改造
Excerpt: ここ数日、デザイン変更に挑戦してみました。 テンプレートやスタイルシートを四苦八苦しながら変更し、何とか今のデザインに落ち着きました。 またデザイン変更にあわせていくつか...
Weblog: ウェブログ@m-310.com
Tracked: October 25, 2003 01:24 AM
デザイン変更&その他改造
Excerpt: ここ数日、デザイン変更に挑戦してみました。 テンプレートやスタイルシートを四苦八苦しながら変更し、何とか今のデザインに落ち着きました。 またデザイン変更にあわせていくつか...
Weblog: ウェブログ@m-310.com
Tracked: October 25, 2003 01:24 AM
デザイン変更&その他改造
Excerpt: ここ数日、デザイン変更に挑戦してみました。 テンプレートやスタイルシートを四苦八苦しながら変更し、何とか今のデザインに落ち着きました。 またデザイン変更にあわせていくつか...
Weblog: ウェブログ@m-310.com
Tracked: October 25, 2003 01:24 AM
デザイン変更&その他改造
Excerpt: ここ数日、デザイン変更に挑戦してみました。 テンプレートやスタイルシートを四苦八苦しながら変更し、何とか今のデザインに落ち着きました。 またデザイン変更にあわせていくつか...
Weblog: ウェブログ@m-310.com
Tracked: October 25, 2003 01:24 AM
コメント周りあれこれ
Excerpt: あちこち手入れ。 メインページのエントリーに「いただいたコメント」を表示。 ez network コメント表示 「コメント」をクリックしなくても、メインページにコメントを表示するようにしてみた。 ↓は MT のテンプレート。</MTEntries>の前に入れよう。 コメントがない場...
Weblog: SAYA'S blog
Tracked: January 8, 2004 02:25 PM
簡単条件分岐でスッキリ
Excerpt: インディヴィジュアルなエントリーでコメントがない時にコメント欄を表示させないようにしました。 参考にさせていただいたのは、eulog. - manimani side: テンプレート上で条件文を使う。です。 そんで、このプラグインを入手しました。 Compare Plugin for Movable Type...
Weblog: ready for the blue
Tracked: March 18, 2004 06:50 PM
インデックスページをちょこっと修正
Excerpt: JaveScriptで続きをびよ〓んとのばすと、どうしてもトップページが重くなってしまうので、ノーマル状態に戻しました。昨日はサーバも重かったのか、なかなか表示されないところもあったので。 エントリー個数も多すぎるので、7日間に変更。もっと三日坊主になるのをおそれ...
Weblog: Too Cheap!! blog
Tracked: April 6, 2004 10:39 PM
テンプレの見直し&改良
Excerpt: 前から気になってた部分をちょっとずつ修正。 ・エントリー投稿画面にBlockquoteボタンとStrikeボタンを追加。 ・エントリー投稿画面のURLボタンに自動的に target="_blank"が入れられるように追加。 ・コメント画面を固定400pxから全画面表示に修正。 ・コメントプレビュ...
Weblog: irpo
Tracked: June 25, 2004 09:20 PM