Movable Type の文字列比較プラグイン

ここギコ!: Movable Typeプラグインの宝箱」 の記事で知った Movable Type の同じコンテナタグ内の属する変数の値を比較するためのプラグイン 「Compare Plugin for Movable Type」 についての備忘録です。

Compare プラグインは、Movable Type 標準装備の MTEntryIfExtended のようなタグとは異なって単純な真か偽かを判定するのではなく、一般的な if 文のように

「対象とする変数が指定の値か?」

を判定することができます。

- スポンサーリンク -

ぱっと聞いた感じでは、「Movable Type の正規表現プラグイン」で紹介した MT Regex プラグイン でも同じことがデキルよ!って思っちゃいましたが、作者のページにも注意書きが記載されていて、

These tags are intended for doing straight comparisons of equality and inequality. If you want to compare things against regular expressions (for instance, finding out whether a string contains another string), you should try Brad Choate's powerful and flexible Regex plugin. (The MTIfMatches tag in that plugin overlaps somewhat in functionality with the MTIfEqual and MTIfNotEqual tags in this one.)

と書いてあります。要するに、もっと強力な比較プラグインが使いたい場合は、MT Regex プラグイン を使ってちょってことみたいです。逆にこの Compare プラグイン は非プログラマーな方は正規表現とか良く判らないよねって場合に、単純に解りやすい構文になっていると思います。

このプラグインによって使用可能となる命令としては、

  • MTIfEqual
  • MTIfNotEqual
  • MTIfGreater
  • MTIfGreaterOrEqual
  • MTIfLess
  • MTIfLessOrEqual
  • MTIfBetween
  • MTIfNotBetween
  • MTIfBetweenExclusive
って感じになっています。概ねどの命令も、

a="変数名" b="比較するための値"

ってな具合でタグを記述するようです。例えば、配布サイトで説明されているように、

<MTIfEqual a="[MTEntryAuthor]" b="Bob" b1="Carol" b2="Ted" b3="Alice">
<img src="/images/special_people.gif">
</MTIfEqual>

と書けば、MTEntryAuthor が Bob, Carol, Ted, or Alice の場合にイメージファイルを出力するって意味になります。

確かに正規表現より解りやすい方は多いと思います。僕的には既に MT Regex プラグイン使っちゃってるので乗り換えはないですが、もしちょっとしたカスタマイズをしたいけど、JavaScript とか php をわざわざ使って if で見栄えを変更してるんだよねーって場合には大いに使い道があるかと思います。

- スポンサーリンク -