月間移動可能なカレンダー
カレンダーを今月分と前月分表示していたんですが、iframeを使う方法に切り替え、月間移動可能なカレンダーにしました。
Sukesam blog: 月間移動可能なMovableTypeのカレンダー
月間移動可能なMovableTypeのカレンダー
MovableTypeのカレンダーをみてempty pages (some movable type tips & tricks) tags/calendar iframeを参考に
カレンダーの移動が可能なようにテンプレートなどを作り直してみた。
技法公開に感謝いたします。
私の場合。カレンダー専用のhtml格納場所を作成。
<MTBlogURL>archives/calendar
新しいアーカイブ・テンプレートを作成。
テンプレート名:calendar
内容は以下。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<$MTPublishCharset$>" />
<title><$MTBlogName$></title>
<link rel="stylesheet" href="<$MTBlogURL$>calstyle.css" type="text/css" />
<MTBlogIfCCLicense>
<$MTCCLicenseRDF$>
</MTBlogIfCCLicense>
</head>
<body>
<div align="center" class="calendar">
<table border="0" cellspacing="4" cellpadding="0" summary="Monthly calendar with links to each day's posts">
<caption class="calendarhead">
<MTArchivePrevious>
<a href="<MTBlogURL>archives/calendar/<MTArchiveDate format="%Y%m">.html" title="« <MTArchiveDate format="%B %Y">" onmouseover="window.
status='<MTArchiveDate format="%B %Y">'; return true" onmouseout="window.status='';return true">«</a>
</MTArchivePrevious>
<$MTArchiveDate format="%B %Y"$>
<MTArchiveNext>
<a href="<MTBlogURL>archives/calendar/<MTArchiveDate format="%Y%m">.html" title="» <MTArchiveDate format="%B %Y">" onmouseover="window.
status='<MTArchiveDate format="%B %Y">'; return true" onmouseout="window.status='';return true">»</a>
</MTArchiveNext>
</caption>
<tr height="20">
<th abbr="Sunday" align="center"><span class="calendar">日</span></th>
<th abbr="Monday" align="center"><span class="calendar">月</span></th>
<th abbr="Tuesday" align="center"><span class="calendar">火</span></th>
<th abbr="Wednesday" align="center"><span class="calendar">水</span></th>
<th abbr="Thursday" align="center"><span class="calendar">木</span></th>
<th abbr="Friday" align="center"><span class="calendar">金</span></th>
<th abbr="Saturday" align="center"><span class="calendar">土</span></th>
</tr>
<MTCalendar month="this">
<MTCalendarWeekHeader><tr></MTCalendarWeekHeader>
<td align="center"><span class="calendar">
<MTCalendarIfEntries><MTEntries lastn="1"><a href="<$MTEntryLink archive_type="Daily"$>" target="_top"><$MTCalendarDay$></a></MTEntries></MTCalendarIfEntries>
<MTCalendarIfNoEntries><$MTCalendarDay$></MTCalendarIfNoEntries>
<MTCalendarIfBlank> </MTCalendarIfBlank></span></td>
<MTCalendarWeekFooter></tr></MTCalendarWeekFooter></MTCalendar>
</table>
</div>
</body>
</html>
カレンダー専用のスタイルシートを作成。
テンプレートの名前:calendar stylesheet
出力ファイル名:calstyle.css
内容は以下。
@charset "EUC-JP";
A { color: #D00; text-decoration: underline; }
A:link { color: #D00; text-decoration: underline; }
A:visited { color: #900; text-decoration: underline; }
A:active { color: #E00; text-decoration: underline; }
A:hover { color: #E00; text-decoration: underline; }
.calendar {
font-family:verdana, arial, sans-serif;
font-size: x-small;
color: #111;
text-align:left;
text-transform:lowercase;
}
.calendarhead {
font-family:verdana, arial, sans-serif;
color:#111;
font-size:small;
font-weight:bold;
padding:2px;
text-align:left;
}
BLOGの設定→アーカイブの設定から新しいmonthlyアーカイブを追加。
このとき、アーカイブの種類をmonthlyに、テンプレートをcalendarにする。
<2004.2.13追記>
アーカイブファイルのテンプレートは、以下のようにしました。
calendar/<$MTArchiveDate format="%Y%m"$>.htmlこれで再構築してみて、カレンダー用のページが<MTBlogURL>archives/calendarに作成されることを確認する。
カレンダー用のページが作成できていれば、Main indexのテンプレート中に、組み込む。
<div class="sidetitle">
カレンダー
</div>
<div align="center" class="calendar">
<iframe name="cal-iframe" src="<MTBlogURL>archives/calendar/<MTDate format="%Y%m">.html" frameborder="0" marginwidth="0" marginheight="0"></iframe>
</div>
<追記 at 2004.3.03>
ミススペル修正。
これだけですと、月初にその月のエントリーがまだ無いとき、該当月のカレンダーも作成されていないため、カレンダーが表示されません。その後で回避方法についても記しましたが、わかりやすくするために、ここにリンクを記しておきます。こちらもご覧ください。
<追記 at 2008.12.23>
以下にMT4.23で再作成したときの2008版について記しました。こちらもご覧ください。
コメント[1]
このページを参考にさせてもらいました。
ありがとうございます。
Posted by F at 2006年1月 3日 02:01