MovableTypeのカレンダーをカスタマイズ
月ごとのアーカイブにもカレンダーを表示して、月の移動をしたいと思った。それでなければかカレンダーとしてちょっと意味がない。
「日付アーカイブ」のカスタマイズを行った。左右の2列表示にするのは、メインページを参考に、<div id=”center”> </div>でメインのコンテンツ部分を囲み、<div id=”right”>…</div>の中のカレンダー部分だけを残してコピーをする。
これで、カレンダーは右側に表示されたのだがカレンダーはどの月のアーカイブを見ても最新の2004年12月で表示されてしまった。
11月のアーカイブ表示時は2004年11月と表示したいので、もう少しいじってみる。
ヘルプによれば、指定年月のカレンダーを表示するには<MTCalendar month=”yyyymm”>….</MTCalendar$>のように、年月をパラメータで渡せばいいということだったので、REQUEST_URI から年月を読み込んでパラメーターを渡してみる。
アーカイブのURLは自分の場合、/archives/yyyy/mm/index.php として呼び出されるので、
<?php
$arys = explode(“/”, $_SERVER[“REQUEST_URI”]);
$year = $arys[count($arys) – 3];
$month = $arys[count($arys) -2];
?>
のようにはじめに、PHPで年月を取得しておき
<MTCalendar month=”<?= $year.$month ?>”>としてみたのだが、、、
年月は変わらない上に、”> が連続して出てきてしまった。
PHPで読み込んだ値自体は間違いなかったのだが、テンプレートの構築の時に年月が渡されないと意味がないのでしょうね。
いろいろ調べたところ、<MTCalendar month=”this”>とすればよかった。
これでカレンダーの中身は表示されるのだが、caption で指定している年月の表示がまだかわらない。11月のカレーンダーを表示しているのに、2004年12月とか表示している。マヌケなので修正。
<$MTDate format=”%B %Y”$> となっているところを、<$MTArchiveDate format=”%B %Y”$>に変えることでうまくいった。
あとはカレンダーに月の移動を組み込めば完了だ。
前の月への移動
<MTArchivePrevious>
<a href=”<$MTArchiveLink$>”>«</a>
</MTArchivePrevious>
次の月への移動
<MTArchiveNext>
<a href=”<$MTArchiveLink$>”>»</a>
</MTArchiveNext>
を、<caption><$MTArchiveDate format=”%B %Y”$></caption> の MTArchiveDateの前後にそれぞれ入れる。
これで、カレンダーが少しはましになた。
メインインデックスに表示する方法は現在調査中。。。
Comments
3 Responses to “MovableTypeのカレンダーをカスタマイズ”
Leave a Reply
カレンダーに月別アーカイブのリンクを
MovableTypeで、月別アーカイブへのリンクは、通常のテンプレートを使用していると、毎月 少しずつ縦に伸びていって気持ちわるい。視認性も良くないので…
月別アーカイブのカレンダーに、表示中の月のカレンダーを表示するところで、
悪戦苦闘していたところ、偶然このエントリーをみつけて参考にさせていただきました!
かなり助かりました。ありがとうございました!!
Hello! This is kind of off topic but I need some help from an established blog. Is it hard to set up your own blog? I’m not very techincal but I can figure things out pretty quick. I’m thinking about creating my own but I’m not sure where to begin. Do you have any ideas or suggestions? Many thanks