カテゴリ IF 命令プラグイン - MTIfCategory
前日紹介した「Movable Type の正規表現プラグイン」は、MTタグで得られる結果を正規表現で文字列比較できる非常に強力なプラグインですが、それだけでは実現できない機能があります。それは、MTタグで得られる結果どうしを比較する機能です。
もっと具体的に例を挙げるとすれば、このサイトのナビゲーションバーのように、カテゴリーアーカイブにおいて、今該当するカテゴリーだけを見栄えを変化させたり、個別記事が属するカテゴリーに応じて、ナビゲーションバーの見栄えを変化させたりすることです。
ということで、MT の内部機能的に話すとすれば、<$MTCategoryLabel$> と <$MTArchiveCategory$> を比較したり、<$MTCategoryLabel$> と <$MTEntryCategory$> を比較することを実現するためのプラグインを公開します。
≫スクリプトはこちら(MTIfCategory.pl)
<動作環境>
MovableTypeをご使用の環境ならどれでも。
<pluginの設置方法>
(1)他のPlugin同様に、MovableTypeのpluginディレクトリへ IfCategory.pl をFTPして下さい。
ファイルの文字コードは変更せず、このまま UP してください。ここポイント!!
以上で、MovableTypeで以下の4つのコンテナ・タグが使用可能になります。
<MTIfCategory コンテナ・タグ>
- <MTIfCat_eq_Arc> 〜 </MTIfCat_eq_Arc>
<$MTCategoryLabel$> と <$MTArchiveCategory$> が一致した場合、タグ範囲内の内容が有効になります。
主に、カテゴリーアーカイブにてナビゲーションバーの見栄えを変更する際に使用します。
- <MTNotIfCat_eq_Arc> 〜 </MTNotIfCat_eq_Arc>
上記のNot判定で使用します。
- <MTIfCat_eq_Ent> 〜 </IfCat_eq_Ent>
<$MTCategoryLabel$> と <$MTEntryCategory$> が一致した場合、タグ範囲内の内容が有効になります。
主に、個別エントリーにてナビゲーションバーの見栄えを変更する際に使用します。
- <MTNotIfCat_eq_Ent> 〜 </MTNotIfCat_eq_Ent> 上記のNot判定で使用します。
<MTIfCat_eq_Arc><B><$MTCategoryLabel$></B></MTIfCat_eq_Arc>
<MTNotIfCat_eq_Arc><$MTCategoryLabel$></MTNotIfCat_eq_Arc>
</MTCategories>
<使用例(個別エントリーで属するカテゴリ部分だけ強調表示する)>
<MTIfCat_eq_Ent><B><$MTCategoryLabel$></B></MTIfCat_eq_Ent>
<MTNotIfCat_eq_Ent><$MTCategoryLabel$></MTNotIfCat_eq_Ent>
</MTCategories>
コメントやシェアをお願いします!
drk
>Nakachi さん
実のところをもうしまして MT4 では検証したことがありません。下のコメントでも書きましたが、まだ MT4 対応を実施していない状況です。
申し訳ありません。
Nakachi
MT4.261で使用させて頂いてます。
プラグインは動作しているのですが、ツリー型カテゴリで実現しようかと思い、
<mt:Categories>を<mt:TopLevelCategories>に変えた所動作しなくなりました。
これは仕様なのでしょうか?
また、<mt:TopLevelCategories>にて対応させる事は可能でしょうか?
drk
jonson さん> MT4 ではどうやらプラグインの仕様が変更になっているようですね。MT3 以前で通用した MT2 時代の書き方ではダメみたいです。
時間ができたら MT4 対応をしてみます。
と言うわけで、申し訳ありませんがご指摘の通り現状は MT4 非対応となります。
jonson
MT4で使用したところ、うまくプラグインが使用できなかったのですが、
MT4には非対応なのでしょうか?私の使用方法が間違っているのであれば申し訳ありません。
drk
akyaoさん>おっしゃるとおりですね。修正しました。ご指摘有り難うございます。
akyao
サンプルの終了タグの名前間違ってませんか?
>
開始タグ
>MTIfNotCat_eq_Arc
終了タグ
>MTNotIfCat_eq_Arc