2006年5月 9日
休日表示付リアルタイムカレンダー for FC2ブログ
またカレンダースクリプトをオブジェクト指向プログラミングに変更してみました。 |
1.休日表示用カレンダースクリプトのダウンロード
下記の download をクリックして休日表示用カレンダースクリプトをダウンロードしてください。
2.スクリプトのアップロード
ダウンロードした dayChecker.js をFC2ブログの「ツール」→「ファイルのアップロード」機能を使ってアップロードしてください。
3.テンプレートの修正1(スクリプトのインクルード)
テンプレートの <head>~</head> の間に下記の設定を追加してください。
<script type="text/javascript" src="<%url>file/dayChecker.js" charset="utf-8"></script>
dayChecker.js の文字コードは utf-8 で作成してますが、FC2ブログの文字コード(EUC)に変更してアップロードする場合、上記のタグは charset 属性を省いた形で設定してください。
4.テンプレートの修正2(カレンダー表示部分)
カレンダーを表示したい部分に、下記のカレンダー表示タグおよびカレンダースクリプト実行用のスクリプトを追加してください。
<!-- カレンダー開始 -->
<div class="side">
<div class="calendar">
<table summary="<%now_year>/<%now_month>">
<caption class="calendarhead">
<a href="<%prev_month_link>" title="<%prev_month>月のページへ"><</a>
<%now_year>年<%now_month>月
<a href="<%next_month_link>" title="<%next_month>月のページへ">></a>
</caption>
<tr>
<th abbr="Sunday"><span class="calendar"><span class="red">Sun</span></span></th>
<th abbr="Monday"><span class="calendar">Mon</span></th>
<th abbr="Tuesday"><span class="calendar">Tue</span></th>
<th abbr="Wednesday"><span class="calendar">Wed</span></th>
<th abbr="Thursday"><span class="calendar">Thu</span></th>
<th abbr="Friday"><span class="calendar">Fri</span></th>
<th abbr="Saturday"><span class="calendar"><span class="blue">Sat</span></span></th>
</tr>
<!--calender-->
<tr>
<td class="day"><%calender_sun></td>
<td class="day"><%calender_mon></td>
<td class="day"><%calender_tue></td>
<td class="day"><%calender_wed></td>
<td class="day"><%calender_thu></td>
<td class="day"><%calender_fri></td>
<td class="day"><%calender_sat></td>
</tr>
<!--/calender-->
</table>
</div>
</div>
<!-- カレンダー終了 -->
<script type="text/javascript">
<!--
function setWeekendAndHoliday() {
var elements = document.getElementsByTagName("table");
var element = elements[0].getAttribute("summary");
var year = element.split("/")[0];
var month = element.split("/")[1];
var spans = elements[0].getElementsByTagName("TD");
var day;
for (i = 0; i < spans.length; i++) {
if (spans[i].getAttribute("class") == "day" ||
spans[i].getAttribute("className") == "day") {
if(spans[i].innerHTML.indexOf("href") != -1){
day = spans[i].getElementsByTagName("a")[0].innerHTML;
} else {
day = spans[i].innerHTML;
}
if (dc.isHoliday(year, month, day)) {
if (dc.isToday(year, month, day)) {
spans[i].setAttribute('class', 'tholiday');
spans[i].setAttribute('className', 'tholiday');
} else {
spans[i].setAttribute('class', 'holiday');
spans[i].setAttribute('className', 'holiday');
}
} else if(dc.isSaturday(year, month, day)) {
if (dc.isToday(year, month, day)) {
spans[i].setAttribute('class', 'tsaturday');
spans[i].setAttribute('className', 'tsaturday');
} else {
spans[i].setAttribute('class', 'saturday');
spans[i].setAttribute('className', 'saturday');
}
}
if(dc.isToday(year, month, day)) {
spans[i].setAttribute('class', 'today');
spans[i].setAttribute('className', 'today');
}
}
}
}
var dc = new dayChecker();
setWeekendAndHoliday();
//-->
</script>
5.CSS修正
下記のセレクタをスタイルシートに追加してください。
.holiday,
.holiday a:link {
color: #e50003;
}
.saturday,
.saturday a:link {
color: #0000ff;
}
.tholiday {
display: block;
border: 1px solid #444444;
color: #e50003;
}
.tholiday a:link {
color: #e50003;
}
.tsaturday {
display: block;
border: 1px solid #444444;
color: #0000ff;
}
.tsaturday a:link {
color: #0000ff;
}
.today {
display: block;
color: #444444;
border: 1px solid #444444;
}
以上です。
2007.04.21 追記
春分の日・秋分の日の振替休日が表示されない不具合を修正しました。
Comments [6]
| Trackbacks [2]
FC2 ブログのテーブルタイプのカレンダーに土・日・休日・本日を表示するカスタマイズです(

