• 更新:
  • 投稿:
  • カテゴリィ:

Amazon Searchでお世話になっているdrkさん(ありがとうございます!)のMT でカテゴリ別に楽天ランキングを表示する方法 :: Drk7jpを読んで思ったこと。

さて、当然ながら MT とか使っていたらカテゴリ毎に違った広告を表示したくなります。これを実現するには意外と簡単。

MT正規表現プラグイン MT Regex Plugin」さえインストールしてしまえばいいんです。

MT でカテゴリ別に楽天ランキングを表示する方法 :: Drk7jp

「逆・それ plu

──つまり、それはPluginなしでできますよ、という。

どないすんねん?(何語?)

たとえば、このようなカテゴリィ構成だったとします。

    • 小説
    • マンガ
      • 週刊少年ジャンプ
      • とっても大人向けのマンガ
  • (以下省略)

「本」という親カテゴリィの下に「小説」と「マンガ」という子カテゴリィがある。「マンガ」カテゴリィの下には「週刊少年ジャンプ」と「とっても(ry」という孫カテゴリィが──という構成。

drkさんの提案する、Pluginを使うテンプレートの場合、「本」カテゴリィ配下のカテゴリィすべてに同じ広告を表示したい、というときに、少し困ります。何が困るかというと、こんな感じに記述が長くなるわけです。

<MTIfMatches var="ArchiveCategory" pattern="m/(本|小説|マンガ|週刊少年ジャンプ|とっても大人向けのマンガ)/">
(「本」カテゴリィ向けの広告を出すスクリプト)
</MTIfMatches>

また、サブカテゴリィの名前を変更したときも、テンプレートの更新が必要です。

逆・それPlu

Plugin無しで記述する場合は、たとえば、こう。

<MTIfIsDescendant parent="本">
(「本」カテゴリィ向けの広告を出すスクリプト)
<MTElse>
(「本」以外のカテゴリィ向けの広告を出すスクリプト)
</MTElse>
</MTIfIsDescendant>

──シンプルです。

MTIfIsDescendantタグの説明は、下記の通りです。

現在のカテゴリーが、指定したカテゴリーの子孫であるかどうかを判定する条件タグ(たとえば、最上位のカテゴリーから現在のカテゴリーまでの間に、指定したカテゴリーが存在するかどうかを判定します)。

Movable Type 3.2 マニュアル - テンプレート・ タグ

──なんだかよく解らないですが、まぁ、

<MTIfIsDescendant parent="マンガ">
(「マンガ」カテゴリィ向けの広告を出すスクリプト)
</MTIfIsDescendant>

と記述した場合、「本」カテゴリィには適用されないわけです。

なぜにゃらば!! 「本」カテゴリィは「マンガ」カテゴリィの子孫──つまり下位ではなく上位にあるからです。試してないけど(©(O))。

MTIfIsAncestorというタグもあって、MTIfIsDescendantの逆の働きをする、らしいです。ためしてn(ry

MTのタグって

こんな記事を書いておいてなんですが、結局、自分の慣れた方法が一番だと思います。プラグインで書く方法が自分に合っているなら、それでもいいでしょう。

それにしても──。

drkさんのようにMTプラグインをバリバリ使いこなしている人でも、MTIfIsDescendantタグがパッと出てこなかった──ということだと想像。それは要するに──MTは全部を把握することが困難なくらいに巨大なツールになってしまった、ということでは。

自分はcaramel*vanilla ≫ [MT3.3]BigTemplateWindow 日本語版で公開されているBigTemplateWindow(MT3.2版)でタグ一覧をダラダラ流し見しているときに、偶然MTIfIsDescendantを見つけました。

──ちょっと、「遊び道具」にしては大きすぎるようになってきたな、MTって(ぼそっ)。

参考

「それ plu」を初めて知ったのはTransformer 機能を利用したプラグインで管理画面をカスタマイズ - 2xup.org

この記事のタグ(偽)

[書いていたら頭が痛くなってきた][脱線多すぎの記事][試してないメソッド]

[2] このページの一番上へ戻る