« MTタグの<、>、"、&をブラウザでそのまま表示する(自分用メモ) | メイン | ビスクドールが欲しい »

2005年05月20日

カレンダーのカスタマイズ(自分用メモ)

・メインページのカレンダーに、先月の月別アーカイブのリンクを作る方法

メインページ(index.html)のカレンダーの表題、「2005年03月」 を 「 2005年03月」 のような表示にして、先月の月別アーカイブへリンクするようにテンプレートを変更する。

カレンダー表示のブロックに以下のタグを見つける。

<$MTDate format="%B %Y"$>

このタグの直前に以下のJavaScriptを追加する。

<script language="JavaScript">

<!--
dat=new Date(); yea=dat.getYear(); if (yea < 2000) yea = yea + 1900;mon=dat.getMonth(); document.write('<a href="<MTBlogURL>archives/'); document.write(yea);
if(mon == "0") { document.write('/12');}else if(mon < "10") { document.write('/0'); document.write(mon);} else{ document.write('/'); document.write(mon);}document.write('/index.html">≪</a> ');
// -->

</script>

JavaScriptで先月を計算して、リンクURLを作成して出力している(document.write)。 デフォルトでは http://サーバ名/archives/2005/02/index.html というリンクになる。 ブログの設定で、月別アーカイブが http://サーバ名/archives/2005_02.html などの場合は、

'/12' → '_12'
'/0' → '_0'
'/' → '_'
index.html → .html

という変更が必要。

*************************************************

・月別アーカイブでカレンダー部分に、先月と来月へのリンクを作成する方法

カレンダー表示ブロックで以下の記述を探す。

<caption class="calendarhead"><$MTDate format="%B %Y"$></caption>

これを、以下のように変更。

<caption class="calendarhead"><MTArchivePrevious><a href="<$MTArchiveLink$>">≪</a></MTArchivePrevious> <$MTArchiveDate format="%B %Y"$> <MTArchiveNext><a href="<$MTArchiveLink$>">≫</a></MTArchiveNext></caption>

これで、「≪ 2003年03月 ≫」のように、前月と次月へのリンクが表示される。
最新月では、きちんと次月へのリンクが表示されない仕様になっている。

投稿者 coboratory : 2005年05月20日 14:46