Movable Type 備忘録

 MTIfCategoryプラグイン

こんにちわ^^
といっても、日本は今、ミッドナイトですけど (; ̄∇ ̄A

ドライアイでパソコンがいじれないから本読んでたら、いい具合に眠くなってお昼寝し過ぎちゃったみたい (´・д・`)
おかげで寝れなくなってしまったbzbellです。

こういう暇な!? 時間を有効に使おうと、以前消してしまったプラグインページを復活させるために、わたしが使っているプラグインを整理してたら、まだ紹介してないプラグインがたくさんあったので、その中の1つをご紹介します。

この記事を書くのに3時間かかった(o´Д`o)ふぁ~

今回ご紹介するプラグインは、MTIfCategoryプラグインです。

このプラグインはどういうものかというと、わたしのサイトの右上にはカテゴリ一覧を表示させています。
いずれかのカテゴリ・ページを表示すると、ページに該当するカテゴリを強調表示させてます。

ですが、デフォルトのMovableType(ムーバブルタイプ)のタグだけでは、カテゴリ・アーカイブ内で知る術がありません。

そこで、Drk7.jpさんところで公開されているMTIfCategoryプラグインが活躍するわけです ( ̄∇ ̄)b

MTIfCategoryプラグインの使い方

MTIfCategoryプラグインの各条件タグについて以下に引用します。

  • <MTIfCat_eq_Arc>~</MTIfCat_eq_Arc>
    <$MTCategoryLabel$>と<$MTArchiveCategory$>が一致した場合、タグ範囲内の内容が有効になります。 主に、カテゴリーアーカイブにてナビゲーションバーの見栄えを変更する際に使用します。

  • <MTNotIfCat_eq_Arc>~</MTNotIfCat_eq_Arc>
    上記のNot判定で使用します。

  • <MTIfCat_eq_Ent>~</MTIfCat_eq_Ent>
    <$MTCategoryLabel$>と<$MTEntryCategory$>が一致した場合、タグ範囲内の内容が有効になります。 主に、個別エントリーにてナビゲーションバーの見栄えを変更する際に使用します。

  • <MTNotIfCat_eq_Ent>~</MTNotIfCat_eq_Ent>
    上記のNot判定で使用します。

カスタマイズ

  1. まずMTIfCategoryプラグインをインストールします。
    こちらのカテゴリ IF 命令プラグイン - MTIfCategoryからMTIfCategory.plを入手して、サーバにアップロードします。

    アップロード先はいつものように、mt/plugins/ディレクトリの中です。

  2. 次に、カテゴリ・アーカイブと個別エントリ・アーカイブを変更します。
    以下のコードは実際にわたしのサイトで使用しているXHTMLです。

    1. <ul>
    2. <MTCategories>
    3. <MTIfNonZero tag="MTCategoryCount">
    4.     <MTIfCat_eq_Arc>
    5.         <li class="current"><h2>
    6.             <a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryLabel decode_html="1" remove_html="1">
    7.             <$MTCategoryLabel decode_html="1" remove_html="1"$></a>
    8.     <MTElse>
    9.         <li><h2>
    10.             <a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryLabel decode_html="1" remove_html="1">
    11.             <$MTCategoryLabel decode_html="1" remove_html="1"$></a>
    12.     </MTElse>
    13.     </MTIfCat_eq_Arc>
    14.     </h2></li>
    15. </MTIfNonZero>
    16. </MTCategories>
    17. </ul>

    青い字の部分が、強調表示したいカテゴリの処理部で、緑の字でclass="current"を追加することで、CSSでデザインできるようにしています。

    赤い字の部分が強調表示外のカテゴリの場合の処理部になります。
    以下は個別エントリ・アーカイブ内のカテゴリ一覧になります。

    1. <ul>
    2. <MTCategories>
    3. <MTIfNonZero tag="MTCategoryCount">
    4.     <MTIfCat_eq_Ent>
    5.         <li class="current"><h2>
    6.             <a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryLabel decode_html="1" remove_html="1">
    7.             <$MTCategoryLabel decode_html="1" remove_html="1"$></a>
    8.     <MTElse>
    9.         <li><h2>
    10.             <a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryLabel decode_html="1" remove_html="1">
    11.             <$MTCategoryLabel decode_html="1" remove_html="1"$></a>
    12.     </MTElse>
    13.     </MTIfCat_eq_Ent>
    14.     </h2></li>
    15. </MTIfNonZero>
    16. </MTCategories>
    17. </ul>

    青い字の部分が、強調表示したいエントリが属するカテゴリの処理部で、緑の字でclass="current"を追加することで、CSSでデザインできるようにしています。

    赤い字の部分が強調表示外のエントリが属さないカテゴリの場合の処理部になります。

  3. 上記コードを流用して、カテゴリ・アーカイブ、個別エントリ・アーカイブ内の既存のカテゴリ一覧と差し替えます。

  4. 一通り変更したら、カテゴリ、個別エントリ・アーカイブをそれぞれ再構築します。

  5. 最後に各自のテンプレートに合わせて"current"クラスのスタイルを追加します。

以上で各カテゴリ・ページ、個別エントリ・ページが表示されると、カテゴリ一覧の該当カテゴリが強調表示されるようになります。

 Trackback Pings(1)

from ひろ式めもちょう

blogが普及してから、ナビゲーションバーやカテゴリ一覧で 「現在見ているページが該当するカテゴリのリンクを無効にしない」 テヌキが一般的になってしまった...

 Comments(0)

No comments found.

 Post a Comment

 

コメント用フィード