Melog

Entry

Movable Type 3.1

現在使用しているMovable Type (以下MT)のバージョンを、3.0から3.1に(正確には、3.01-jaから3.11-jaに)バージョンアップ。今回のMTでは、サブカテゴリが使える、動的生成が使えるようになるという話が何処かの雑誌に書いてあったような気がしたので、その辺りの機能を割と楽しみにしていた。
バージョンアップして早速手をつけたのが、サブカテゴリ。元々自分のカテゴリ分けは、こういったサブカテゴリを使う事をある程度視野に入れて作ってたので、早々とサブカテゴリを作っておきたかったというのがその理由。サブカテゴリを作るプラグインがあるらしい、という事は知っていたので、いつかそれを使おうと思っていたところ、正式に導入されたので手間が省けた。
で、テンプレートタグをあれこれいじり回してみたけど、これが結構面倒臭くて分かりにくい。ドキュメントを読みながら、あーでもないこーでもないと試行錯誤しながら、やっと何とかそれっぽく作れるようにはなった。あとでGoogle見て気付いたけど、もうすでに英語版等を導入した人が書いた資料が結構あるのね…。それにしても、MTのテンプレート・タグのドキュメントは分かりにくい。色々と中途半端な感じがする。もう少し論理体系を考慮したドキュメントが書けそうな気がするけどな…。少なくとも、コンテナタグと単体のタグを一目で分別できるように、スタイルを考慮してほしいところだ。
まぁそれはさておき、今のところカテゴリの分別はこちらのページに書かれているような感じになっている。もう少し色々追加するかもしれないけど、今のところはこんな感じで。あまり細々と分けても、エントリー書くときにちょっと大変になってしまいそうだ。…カテゴリ選択のインターフェースが、全カテゴリを文字順で並べたものをリストした単体のプルダウンメニューというのは、何とかならないものだろうか…。
あと、親カテゴリから子カテゴリへのリンク等、ページ同士のリンクも全然作ってないので、その辺も後で何とかしておかないと。

Web見れば色々と資料があるので不要かもしれないけど、一応サブカテゴリに関してあれこれメモを書き残しておく。

カテゴリのリストについてメモ。

従来のカテゴリのリスト表示方法 MTArchiveList コンテナの archive_type="Category" 、および MTCategories コンテナでは、トップレベルカテゴリもサブカテゴリも一緒に読み込む。新しく追加された MTSubCategories なら、サブカテゴリを任意の方法でリスト表示できる。これは普通、Categories コンテナを置き換えることで実現するが、MTArchiveList コンテナの archive_type="Category" で、サブカテゴリを任意の方法でリスト表示させる方法がよく分からない…というか、無いと思う。ちなみに、MTSubCategories では従来と違って、エントリーが存在しない場合でもカテゴリを強制表示させる。解除方法は知らない(これも無いのかな?)。

で、自分は以下のような構造でリスト化することにした。

トップレベルカテゴリ
└ サブカテゴリ
トップレベルカテゴリ
トップレベルカテゴリ
├ サブカテゴリ
│ └ サブカテゴリ
└ サブカテゴリ

このようなリスト構造を実現する方法は複数ある。好きな方で。

(1)
<ul class="categoriesList">
<MTSubCategories>
<li><a href="<$MTArchiveLink$>"><$MTArchiveTitle$></a>
<MTHasSubCategories>
<ul>
<$MTSubCatsRecurse$>
</ul>
</MTHasSubCategories>
</li>
</MTSubCategories>
</ul>

(2)
<MTSubCategories>
<MTSubCatIsFirst><ul></MTSubCatIsFirst>
<li><a href="<$MTArchiveLink$>"><$MTArchiveTitle$></a>
<$MTSubCatsRecurse$>
</li>
<MTSubCatIsLast></ul></MTSubCatIsLast>
</MTSubCategories>

ちなみに、MTSubCatIsFirst と MTSubCatIsLast というタグ、マニュアルを読むと "MTSubCatsIsFirst"、"MTSubCatsIsFirst"となっているけど、これはマニュアルの間違いの様子。これだとタグが機能しないので注意。
また、dl要素を使ってカテゴリ概要も記述する場合は以下のような感じで。これも2種類できるけど、かたっぽの方で。

<dl class="categoriesList">
<MTSubCategories>
<dt>
<a href="<$MTArchiveLink$>"><$MTArchiveTitle$></a>
</dt>
<dd>
<$MTCategoryDescription$>
<MTHasSubCategories>
<dl>
<$MTSubCatsRecurse$>
</dl>
</MTHasSubCategories>
</dd>
</MTSubCategories>
</dl>

ちなみにこのこれらの場合、サブカテゴリの段階別にスタイルを設定するということができない(2段までなら何とか…)。いや、もしかしたら上手くスタイルを指定する方法があるのかもしれないけど、自分は分からない。現在サブカテゴリの何段目なのかを取得するMTタグを希望。

今日はこのカテゴリ関連で力尽きたので、動的生成に関しては気が向いたらいじっておこう…。

追記

10月21日 12:40

<$MTArchiveLink$>、<$MTArchiveTitle$>は、
<$MTCategoryArchiveLink$>、<$MTCategoryLabel$>と置いた方がよさそう。MTArchiveList をそのまま引きずってしまったので前者の方で書いてしまったけど、カテゴリ関連のコンテナ内ではこっちの方が正しい…と思う。一応どっちでもできると思うけど。

Comments (0件)

現在コメントはありません。

Comment Form

Notice
  • HTMLタグは使えません。
  • URLは自動的にリンクされます。
  • 公開に不都合のある情報は記入しないでください。
    ただし、メールアドレスは公開されません。
  • 投稿前に文章をコピーしておく事を推奨します。
  • 古いアーカイブへのコメントもご自由にどうぞ。
Post

画像の中に見える文字を入力してください。

TrackBacks (0件)

現在トラックバックはありません。

Trackback URL
URLhttp://melog.info/mt/mt-tb.cgi/129
Notice
  • トラックバック元が存在しない場合や、トラックバック元に当記事へのリンクが無い場合は受け付けません。
  • こちらからトラックバックをお返しする事はありません。
  • 気になった事に対してコメントをお返しする場合があります。
  • 古いアーカイブへのトラックバックもご自由にどうぞ。