« カレンダーに本日表示をつける。 | main | Travis - Singles »

November 14, 2004

[MovableType] 月めくりカレンダーの導入。

さて前回もちょっと触れた左側のメニューにあるカレンダーの月送り化の話。


きままにポロポロ
さんを参考に月めくりカレンダーを導入してみました。

月めくりカレンダー きままにポロポロ

FirefoxとIEでレイアウト確認してるんで、まぁ表示崩れ等はないかと。(Macは不明・・・)

ただ、うちの場合は上記サイトままの方式だと弊害(バックグラウンドカラーが本体とメニューで違う等)があるため、カレンダー用に別途スタイルシートを作る方式をとりました。

まずテンプレート > 新しいアーカイブ・テンプレートを作るからテンプレート名“Calendar”を下記のソースで作成。


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1./ 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$>styles-cal.css" type="text/css" />

<MTBlogIfCCLicense>
<$MTCCLicenseRDF$>
</MTBlogIfCCLicense>

</head>
<body>

<div id="calendar" align="center">
<table table width="170" summary="投稿されたエントリーへのリンク付き月間カレンダー">

<caption>
<MTArchivePrevious>
<a href="<MTBlogURL>archives/calendar/<MTArchiveDate format="%Y/%m/index">.php">«</a>
</MTArchivePrevious>

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

<MTArchiveNext>
<a href="<MTBlogURL>archives/calendar/<MTArchiveDate format="%Y/%m/index">.php">»</a>
</MTArchiveNext>
</caption>

<tr>
<th abbr="日曜日"><font color="#CC0000">su</font></th>
<th abbr="月曜日"><font color="#000033">mo</font></th>
<th abbr="火曜日"><font color="#000033">tu</font></th>
<th abbr="水曜日"><font color="#000033">we</font></th>
<th abbr="木曜日"><font color="#000033">th</font></th>
<th abbr="金曜日"><font color="#000033">fr</font></th>
<th abbr="土曜日"><font color="#0000CC">sa</font></th>
</tr>

<MTCalendar month="this">
<MTCalendarWeekHeader><tr></MTCalendarWeekHeader>

<td <MTCalendarIfToday>style="border : 1px solid #000033;"</MTCalendarIfToday>>
<MTCalendarIfEntries><MTEntries lastn="1">
<a href="<$MTEntryLink archive_type="Daily"$>" title="[<$MTEntryTitle$>]" target="_top">
<$MTCalendarDay$></a>
</MTEntries></MTCalendarIfEntries>
<MTCalendarIfNoEntries><$MTCalendarDay$></MTCalendarIfNoEntries>
<MTCalendarIfBlank> </MTCalendarIfBlank></td>
<MTCalendarWeekFooter></tr></MTCalendarWeekFooter>
</MTCalendar>

</table>
</div>

</body>
</html>

次にテンプレート > 新しいインデックス・テンプレートを作るからテンプレート名“Clendar Stylesheet ”、ファイル名“styles-cal.css”でカレンダー用のスタイルシートを作成。


body {
margin: 0px 0px 0px 0px;
background-color: #DDDDDD;
text-align: center;
}

a {
text-decoration: underline;
}

a:link {
color: #006699;
}

a:visited {
color: #006699;
}

a:active {
color: #CC0000;
}

a:hover {
color: #CC0000;
}

#calendar {
line-height: 140%;
color: #666666;
font-family: "Century Gothic", Verdana, Arial, sans-serif;
font-size: x-small;
padding: 2px;
text-align: center;
margin-bottom: 20px;
}

#calendar table {
padding: 2px;
border-collapse: collapse;
border: 0px;
width: 100%;
}

#calendar caption {
color: #000033;
font-family: "Century Gothic", Verdana, Arial, sans-serif;
font-size: x-small;
border-bottom: 1px solid #000033;
text-align: center;
font-weight: bold;
text-transform: uppercase;
padding: 4px;
letter-spacing: .3em;
}

#calendar th {
text-align: center;
font-weight: normal;
}

#calendar td {
text-align: center;
}

最後に下記のソースをカレンダーを表示させたい箇所に埋め込んで完成です。


<div align="center">
<iframe name="cal-iframe" src="<MTBlogURL>archives/calendar/<MTDate format="%Y/%m/index">.php"
width="170" height="160" scrolling="NO" frameborder="0" marginwidth="0" marginheight="0">
</iframe>
</div>

まぁ、このままでは流用できない部分も多々あるとは思いますが、一応参考までにということで。当然、色やサイズなんかは任意で変更しないと使い物にならないかと。
特にスタイルシートなんかは公式サイトにある標準デザインGettysburgを元に焼き直しまくってるんで無駄が多いと思いますし・・・

posted by kanegon : November 14, 2004 01:50 AM

comments

はじめまして。Jと言います。
なんとインパルスバイヤーさんがBLOGになったんですか。
サイトよく見てましたよ。

私もBLOGやってるんですが良かったらリンクさせていただけますか?

posted by J : November 14, 2004 03:11 PM

はじめまして。

夏頃からブログ化して細々と更新を続けておりますです。
だんだんスニーカーから離れて行っておりますが(笑)

リンクの件、了解いたしました。
こちらこそよろしくお願いいたします!

posted by kanegon : November 16, 2004 12:39 AM