« Struts 1.2.2リリース | Home | MovableTypeのPHP化 »

[Movable Type]   カテゴリーの階層化

MovableType 3.1からデフォルトの機能になったカテゴリーの階層化を3.0でやってみる。

subcategoriesプラグインで実現できる。このプラグインは3.1に同梱されているので移行してもそのまま使える(はず)。

subcategoriesのインストール (以下MovableTypeのディレクトリをMT_HOMEとする)
  • sub_cats.plをMT_HOME/plugins/ディレクトリに配置
  • mt-sc.cgiをMT_HOME/に配置して実行権限を与える(chmod 755、700など)
  • SubCats.pm と SubCategory.pmをMT_HOME/extlib/rayners/ディレクトリに配置(raynersディレクトリは新たに作成)

この状態でMovableTypeの管理画面にログインするとメインメニューでプラグインが追加されているのが確認できる。

ここでは
Football
-Serie A
-Liga Espanola
というカテゴリー階層を作ってみる。(Serie AとLiga Espanolaカテゴリーは作成済みとする)

  • 親カテゴリーになるFootballカテゴリーを通常のカテゴリー作成と同様に作成する
  • 管理画面のメインメニューからSubCategories v. 1.2 を選択する
  • カテゴリーの選択で[Football] is the parent of [Serie A]と選択して [Set]をクリック
  • 下のカテゴリーの一覧のFootballに (expand/collapse)が追加されているのが確認できる
  • (expand/collapse)をクリックするとSerie Aカテゴリーが子カテゴリーとして追加されているのが確認できる(unset parent)をクリックすれば階層化を解ける
インデックスなどでカテゴリーの一覧を表示する
<ul>
<MTSubCategories> 
<MTSubCatIsFirst><ul></MTSubCatIsFirst>
<MTIfNonZero tag="MTCategoryCount">
<li><a href="<$MTCategoryArchiveLink$>"><MTCategoryLabel></a>(<$MTCategoryCount$>)<MTSubCatsRecurse>
<MTElse>
<li><MTCategoryLabel>
</MTElse>
</MTIfNonZero>
<MTSubCatsRecurse></li>
<MTSubCatIsLast></ul></MTSubCatIsLast>
</MTSubCategories>
</ul>

こうしておけば親カテゴリーなどエントリーを含まないカテゴリーアーカイブへのリンクは表示されない。

個別エントリーなどでカテゴリーの階層を表示する
<MTEntryCategories glue=", ">
<MTParentCategories glue = "&rarr; ">
<MTIfNonZero tag="MTCategoryCount">
<a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryDescription$>"><$MTCategoryLabel$></a>
<MTElse>
<$MTCategoryLabel$>
</MTElse>
</MTIfNonZero>
</MTParentCategories>
</MTEntryCategories>

これでカテゴリーナビゲーションみたいなものも表示できる。

最後にサイトの再構築をして完成。

Trackbacks:

このエントリーのトラックバックURL:

コメントを投稿