Movable Typeはディフォルトでは前の月、次の月の表示はありません。
月別のカテゴリーから前の月のアーカイブ記事をたどることも出来ますが、
できれば簡単に月の移動をさせたいなぁ・・・ということで、
月送りカレンダーのAjax版を導入してみました。
導入の参考にさせていただきましたのは、
小粋空間さまの『Ajax 月送りカレンダー(MT4版)』です。
導入方法が詳しく紹介されていますが、自分用のカスタマイズをメモメモ。
この方法は、MovableType 4 版の Ajax 月送りカレンダーのカスタマイズです。
リアルタイムカレンダー(本日の日付の装飾)および土・日・休日表示も盛り込まれています。
アーカイブマッピングの方法はMT3とMT4で若干違いますので、ご注意を。
1.スクリプトの入手とアップロード
使用するスクリプトは3つあります。
prototype.js (小粋空間で紹介されているリンク先は見つからず、入手先を変更しました)
ajaxCalendar.js
dayChecker.js (「2.ダウンロード」にある dayChecker.js をクリック)
アップロード先は、ブログの/index.htmlと同じディレクトリを指定するのが基本です。
当サイトでは、他のMTでも利用するため、サイト全体でJavaScriptを管理する
ディレクトリ(http://my-domain.com/js/)に設置することにしました。
2.カレンダーテンプレートの作成
カレンダー用のテンプレートを新規に作成します。
管理メニューページで、「デザイン」→「テンプレート」→「アーカイブテンプレート」
→「アーカイブテンプレートを作成」の「ブログ記事リスト」をクリック。
次の画面で、テンプレートの新規設定を作成します。
●テンプレート名:「カレンダー」
●ファイルへのリンク→設定しなくてもOK
●テンプレートの内容(テキストエリア)・・・ここはまずは基本的な記述で(あとからカスタマイズはする予定)
<div class="widget-calendar widget"> <h3 class="widget-header"><MTArchivePrevious> <a href="javascript:void(0);" onclick="changeMonth('<$MTBlogArchiveURL$> <MTArchiveDate format="calendar/%Y/%m/%i">');"><</a> </MTArchivePrevious> <$MTArchiveDate format="%B %Y"$><MTArchiveNext> <a href="javascript:void(0);" onclick="changeMonth('<$MTBlogArchiveURL$> <MTArchiveDate format="calendar/%Y/%m/%i">');" >></a> </MTArchiveNext></h3> <div class="widget-content"> <table summary="<MTArchiveDate format="%Y/%m">"> <tr height="15"> <th abbr="Sunday" class="sunday">Sun</th> <th abbr="Monday">Mon</th> <th abbr="Tuesday">Tue</th> <th abbr="Wednesday">Wed</th> <th abbr="Thursday">Thu</th> <th abbr="Friday">Fri</th> <th abbr="Saturday" class="saturday">Sat</th> </tr> <MTCalendar month="this"> <MTCalendarWeekHeader><tr></MTCalendarWeekHeader> <td><MTCalendarIfBlank><MTElse><span></MTElse> </MTCalendarIfBlank><MTCalendarIfEntries> <MTEntries lastn="1"> <a href="<$MTEntryLink archive_type="Daily"$>"> <$MTCalendarDay$></a> </MTEntries> </MTCalendarIfEntries> <MTCalendarIfNoEntries><$MTCalendarDay$> </MTCalendarIfNoEntries> <MTCalendarIfBlank> <MTElse></span></MTElse></MTCalendarIfBlank></td> <MTCalendarWeekFooter></tr></MTCalendarWeekFooter></MTCalendar> </table> </div> </div>
ここまで設定したら、まずは『保存』
※この設定は、『UTF-8』での動作を前提にしていますので、ブログの文字コードが異なる方は、ぜひ『小粋空間さま』の説明ページをご覧下さい。
以降は説明通りに・・・ 3.カレンダーテンプレートを月別テンプレートに関連づけ(アーカイブマッピング) 4.カレンダーに表示されている日付からのリンク用に、 日別アーカイブを追加設定(アーカイブマッピング) 5.テンプレートを修正。 ヘッダーテンプレートに、先ほどアップロードした3つのスクリプトを 読み込むための記述を追加。 6.カレンダー表示部分の設定 カレンダーを表示させたい箇所に以下の記述を追加。
7.カレンダー用のCSSを追加。 8.ここまで設定してから再構築!!
と、一晩かかって設置して何とか無事に表示されたようです。
トラブルシューティング(表示されない)などのトラブル対処法も
先述ページに紹介されていますので、カレンダーのカスタマイズに挑戦してみては?
2008年10月31日:追記
Ajaxを利用したカレンダーですが、確認していると表示されない(または時がかかる)事もあるようです。
自分のパソコンの処理能力の問題なときもあります。
何ででしょう?