MONTHLY ARCHIVE

MTでのblogも3ヶ月目に入った。
ということは必然的に、ページ右のメニュー、
[MONTHLY ARCHIVE]も3つになるわけだけど、
これ、デフォルトで『September 2004』という表記になっており、
3つとなると、

September 2004
August 2004
July 2004

となって、ちょっとうるさい。
出来ることなら、同一年度内での年の表示は一度にしたい。
これは、Pluginを導入することで実現可能だ。
(実はテンプレート内にPHPを書いて実現させる方法もやってみたのだけど、
Pluginの方が遙かにスマートで簡単だったのでこちらに変更)

導入するのは、Compare.pl
これに特化したというよりも、前後の値を比べて、
変化があったときに処理をするという動作をサポートしている。らしい。
その特性を利用して、次のような処理を入れた。

<table cellpadding=0 cellspacing=0>
<tr><td>[<$MTDate format="%Y"$>]</td></tr>
<tr><td>
<MTArchiveList archive_type="Monthly">
<MTIfEqual a="[MTArchiveDate format=’%m’]" b="12">
<MTIfNotEqual a="[MTDate format=’%Y’]" b="[MTArchiveDate
format=’%Y’]">
</tr><tr><td>[<$MTArchiveDate format="%Y"$>]</td>
</MTIfNotEqual>
</MTIfEqual>
<a href="<$MTArchiveLink$>"><$MTArchiveDate format="%b" $></a>
</MTArchiveList>
</td></tr>
</table>

簡単に言えば、月毎アーカイブの最初の日付の月が12に等しく、
年が1つ前のと異なるとき、テーブルの列を加えて年を挿入する、という処理。
(参考:bird.dip.jp: Monthly Archive

良くできているし、デザイン的に柔軟であるのも良い。
3年ぐらいは放置でも良さそうだ。