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年ぐらいは放置でも良さそうだ。
