TopMovable Typeカスタマイズカレンダー > 2005年2月
2005年2月23日

リアルタイムカレンダー(画像表示版)

ご要望がありましたのでリアルタイムカレンダー(改)を改造して作ってみました。今回の改造に際しまして下記のサイトを参考にさせて頂きました。ありがとうございました。

ふれあい果樹園

本カレンダーの仕様は、本日の日付に画像だけを表示するというものです(日を表示しません)。日付の背景に画像を表示する場合はリアルタイムカレンダーのスタイルシートに

.today {
    background-image :url( "画像のURL");
    background-repeat: no-repeat;
}

というような設定を行えば動作します(多分)。赤字部分に表示したい画像のURLを設定してください。

ここでは通常カレンダー・月送りカレンダー・縦型カレンダー・横型カレンダーの4つのケースについて説明しています。また使用されるアーカイブの拡張子が .php になっていることが前提です。.php になっていない場合は下記のエントリーの3項から始めてください。

リアルタイムカレンダー(改)

また月送りカレンダーにつきましては本エントリーとは別にカスタマイズが必要ですのでご注意ください。

月送りカレンダー

通常カレンダー・月送りカレンダー・横型カレンダーについては、カレンダー設定がされている各テンプレートの <MTCalendar>~</MTCalendar> の部分を下記のスクリプトに変更します。縦型カレンダーは <table>~</table> で括られていることを前提に作っておりますので、該当部分を置き換えてください。また縦型カレンダーのスタイルシートは

全体:calendar
月表示:calendar-head
日表示:calendar-day

という指定になっています。スタイルシートの設定は適宜設定くださいますよう、お願い致します。
いずれも赤字部分に表示したい画像のURLを設定してください。
現状では、Windows2000・IE6.0/Firefox1.0/Opera7.23で動作の正常性を確認しています。

1.通常カレンダー

<?php
$day = date("j");
$img = "画像のURL";
?>
<MTCalendar>
<MTCalendarWeekHeader><tr></MTCalendarWeekHeader>
<MTCalendarIfEntries>
<?php
$d="<$MTCalendarDay$>";
?>
<td align="center">
<?php
if($day != $d) {
    print "<span class=\"calendar\">";
}
?>
<MTEntries lastn="1">
<a href="<$MTEntryLink archive_type="Daily"$>">
<?php
if($day != $d) {
    print $d;
} else {
    print "<img src=\"" . $img . "\" align=\"middle\" border=\"0\" />";
}
?>
</a>
</MTEntries>
<?php
if($day != $d) {
    print "</span>";
}
?>
</td>
</MTCalendarIfEntries>
<MTCalendarIfNoEntries>
<td align="center">
<?php
if($day != <$MTCalendarDay$>) {
    print "<span class=\"calendar\"><$MTCalendarDay$></span>";
} else {
    print "<img src=\"" . $img . "\" align=\"middle\" />";
} 
?>
</td></MTCalendarIfNoEntries>
<MTCalendarIfBlank><td> </td></MTCalendarIfBlank>
<MTCalendarWeekFooter></tr></MTCalendarWeekFooter>
</MTCalendar>

2.月送りカレンダー

<?php
$day = date("j");
$year = date("Y");
$month = date("m");
$img = "画像のURL";
?>
<MTCalendar month="this">
<MTCalendarWeekHeader><tr></MTCalendarWeekHeader>
 
<MTCalendarIfEntries>
<?php
$y = "<$MTCalendarDate format='%Y'$>";
$m = "<$MTCalendarDate format='%m'$>";
$d = "<$MTCalendarDay$>";
?>
<td align="center">
<?php
if($year == $y && $month == $m && $day == $d) {
    print "<span class=\"calendar\">";
}
?>
<MTEntries lastn="1">
<a href="<$MTEntryLink archive_type="Daily"$>" target="_top">
<?php
if($year == $y && $month == $m && $day == $d) {
    print "<img src=\"" . $img . "\" align=\"middle\" border=\"0\" />";
} else {
    print $d;
}
?>
</a>
</MTEntries>
<?php
if($year == $y && $month == $m && $day == $d) {
    print "</span>";
}
?>
</td>
</MTCalendarIfEntries>
 
<MTCalendarIfNoEntries>
<td align="center">
<?php
$y = "<$MTCalendarDate format='%Y'$>";
$m = "<$MTCalendarDate format='%m'$>";
$d = "<$MTCalendarDay$>";
if($year == $y && $month == $m && $day == $d) {
    print "<img src=\"" . $img . "\" align=\"middle\" />";
} else {
    print "<span class=\"calendar\"><$MTCalendarDay$></span>";
} 
?>
</td></MTCalendarIfNoEntries>
 
<MTCalendarIfBlank><td> </td></MTCalendarIfBlank>
<MTCalendarWeekFooter></tr></MTCalendarWeekFooter>
</MTCalendar>

3.縦型カレンダー

<table width="100%" class="calendar" cellpadding="2" cellspacing="4" summary="カレンダー">
<tr>
<td class="calendar-head"><$MTDate format="%B"$>月</td>
</tr>
<?php
$day = date("j");
$img = "画像のURL";
?>
<MTCalendar>
<MTCalendarIfEntries>
<?php
$d="<$MTCalendarDay$>";
?>
<tr><td align="center">
<?php
if($day != $d) {
    print "<span class=\"calendar-day\">";
}
?>
<MTEntries lastn="1">
<a href="<$MTEntryLink archive_type="Daily"$>">
<?php
if($day != $d) {
    print $d;
} else {
    print "<img src=\"" . $img . "\" align=\"middle\" border=\"0\" />";
}
?>
</a>
</MTEntries>
<?php
if($day != $d) {
    print "</span>";
}
?>
</td></tr>
</MTCalendarIfEntries>
<MTCalendarIfNoEntries>
<tr><td align="center">
<?php
if($day != <$MTCalendarDay$>) {
    print "<span class=\"calendar-day\"><$MTCalendarDay$></span>";
} else {
    print "<img src=\"" . $img . "\" align=\"middle\" />";
} 
?>
</td></tr></MTCalendarIfNoEntries>
</MTCalendar>
</table>

4.横型カレンダー

<?php
$day = date("j");
$img = "画像のURL";
?>
<MTCalendar> 
<MTCalendarIfEntries> 
<?php
$d = "<$MTCalendarDay$>";
if($day != $d) {
    print "<span class=\"calendar\">";
}
?>
<MTEntries lastn="1"> 
<a href="<$MTEntryLink archive_type="Daily"$>"> 
<?php
if($day == $d) {
    print "<img src=\"$img\" border=\"0\" />";
} else {
    print " $d";
}
?>
</a>
</MTEntries> 
</MTCalendarIfEntries> 
<MTCalendarIfNoEntries>
<?php
$d = "<$MTCalendarDay$>";
if($day != $d) {
    print "<span class=\"calendar\"> $d";
} else {
    print "<img src=\"$img\" border=\"0\" />";
}
?>
</MTCalendarIfNoEntries> 
<?php if($day != $d) { print "</span>"; } ?> 
</MTCalendar> 

設定終了後、それぞれ保存・再構築してください。

2005.02.26 追記
月送りカレンダーにtypoがありましたので修正しました。

2005.03.11 追記
横型カレンダーを追加しました。

2005.05.02 追記
月送りカレンダーに month="this" の設定がもれていましたので追記しました。

2005.08.07 追記
Apache のログにPHPエラーが出ていたためスクリプトを一部修正しました。

Comments [13] | Trackbacks [8]
Now loading...
ギターに入った猫
掲載広告募集
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

このブログをメールで購読する by:FeedBurner

AMN
Categories
Monthly Archives
2021年
2020年
2019年
2018年
2017年
2016年
2015年
2014年
2013年
2012年
2011年
2010年
2009年
2008年
2007年
2006年
2005年
2004年
2003年
BlogPeople
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
Powered by
Movable Type 6.0.3