おーぷんそーすで行こう-XREA- by hiro

トップページ > movabletype(ブログ) > カレンダーの月送り

≪ 注文管理からのメール(お客様名)不具合の修正 | TOP | 会員登録完了メールのヘッダ不具合修正 ≫

2006年10月23日

 ■  カレンダーの月送り

月送り可能なカレンダーを実装しました。

リアルタイムカレンダー(本日の日付の装飾)および土・日・休日表示も盛り込まれています。
ただエントリーを元にしたカレンダーですので記載の無い月は表示されません。
(当然未来のカレンダーも)

1.下記3つのスクリプトをダウンロードします。
prototype.js
ajaxCalendar.js
dayChecker.js

2.ajaxCalendar.js をエディタで開き、1行目の

var url = "http://yourDomain/";

の赤色部分に、ご自身のブログURLを設定してください。

3.カレンダーテンプレートの作成

管理メニューの「テンプレート」→「アーカイブ」→「テンプレートを新規作成」をクリック。

テンプレート名:カレンダー(名称は何でもOKです)
このテンプレートにリンクするファイル:(設定不要)
テンプレートの内容:下記タグ


<div class="module-calendar module">
<h2 class="module-header">
<MTArchivePrevious>
<a href="javascript:void(0);" onclick="changeMonth('<$MTBlogURL$>
<MTArchiveDate format="calendar/%Y/%m/%i">');">&#65308;
</a>
</MTArchivePrevious>
<$MTArchiveDate format="%B %Y"$><MTArchiveNext>
<a href="javascript:void(0);" onclick="changeMonth('<$MTBlogURL$>
<MTArchiveDate format="calendar/%Y/%m/%i">');" >&#65310;
</a>
</MTArchiveNext></h2>
<div class="calendar">
<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">Wen</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>

設定が終わったら「保存」をクリックしてください。

4.カレンダーテンプレートを月別アーカイブに関連付け

管理メニューの「設定」→「公開」の「アーカイブ・マッピング」の項目の右側にある「マッピングを新規作成」をクリックして下記の設定を実施してください(バージョン 3.3 以降の場合、右上にある「詳細モードに切り替え」のリンクをクリックすることで「公開」というメニューが表示されます)。

「追加」をクリック後、その下の「アーカイブ」欄にある「月別」に、「テンプレート名(ここでは"カレンダー")」が追加されていればOKです。
次に同じ「アーカイブ」欄の「月別」の「カレンダー」の右側にある「出力フォーマット」に下記を設定してください。

出力フォーマット:

calendar/%y/%m/%i

設定後、ページ下にある「変更を保存」をクリックしてください。

※「アーカイブ種類」欄の「日別アーカイブ」をチェックして保存してください。

5.外部ファイルのインクルード

カレンダーを表示させるテンプレートの<head>~<head>の間に下記を追加します。

<script type="text/javascript" src="<$MTBlogURL$>prototype.js"></script>
<script type="text/javascript" src="<$MTBlogURL$>ajaxCalendar.js"></script>
<script type="text/javascript" src="<$MTBlogURL$>dayChecker.js"></script>

6.カレンダー表示部分の設定

カレンダーを表示させたい位置に下記を追加します。

<div id="calendar"></div>
<script type="text/javascript">
getCalendar("<$MTBlogURL$><MTEntries lastn="1" sord_order="descend"><$MTEntryDate format="calendar/%Y/%m/" $></MTEntries>");
</script>

7.cssの修正

.calendar {
margin: 5px 0;
text-align: center;
}
.calendarhead {
padding-bottom: 5px;
font-size: 9px;
letter-spacing: 0.2em;
}
.calendar table {
padding: 0;
border-collapse: collapse;
}
.calendar th {
padding-bottom: 3px;
font-size: 9px;
width: 23px;
}
.calendar td {
padding: 2px 0;
font-size: 10px;
line-height: 120%;
}
.today {
display: block;
border: 1px solid #444444;
}
.sunday,
.holiday,
.holiday a:link,
.holiday a:visited {
color: #e50003;
}
.saturday,
.saturday a:link,
.saturday a:visited {
color: #0000ff;
}
参考は小粋空間さんのページです。

2006年10月23日 09:37

トラックバック

このエントリーのトラックバックURL:
http://open.free-creator.com/mt-tb.cgi/144

コメント

コメントしてください




保存しますか?

(書式を変更するような一部のHTMLタグを使うことができます)

Copyright 2006-2010 © free-creator.com