これは,MovableType のカレンダーに色づけをするプラグインです。
色づけできるのは,日本の休日(日曜・祝祭日),土曜日,
奇数カラムの曜日(月・水・金),偶数カラムの曜日(火・木・土)で,
色はそれぞれ別に指定することができます。
スタティックパブリッシングでは1948年4月20日以降,ダイナミックパブリッシングでは1970年1月1日以降,現在まで対応しています。
カレンダーに色づけする他の方法としては,小粋空間: Ajax 月送りカレンダー があります。
バージョン1との違い
休日表示カレンダーバージョン1は,コンテナタグタイプのプラグインでしたが,
バージョン2から仕様を変更しコンテナを廃止しました。
書式はバージョン1よりコンテナタグがない分,シンプルになっています。
MT 2, MT 3, MT 4, MTOS でご利用いただけます。
ダウンロード
準備
このプラグインには Date::Calc と Calendar::Japanese::Holiday モジュールが必要です。
プラグインをインストールする前に,このモジュールをインストールしておく必要があります。
Date::Calc, Calendar::Japanese::Holiday モジュールは CPAN で配布されており,
Linux であればネットワークインストールが可能です。
# perl -MCPAN -e "install 'Date::Calc'"
# perl -MCPAN -e "install 'Calendar::Japanese::Holiday'"
cpan コマンドがインストールされていれば,上と同様なことがもう少し簡単にできます。
# cpan -i Date::Calc
# cpan -i Calendar::Japanese::Holiday
サーバに Telnet ログインできない場合,これらのモジュールがインストールされているかどうかは サーバーアナライザー - futomi's CGI Cafe を使うと調べられるようです。
インストール
MT 2/MT 3 用の場合,ダウンロードしたファイルをプラグイン用フォルダに置いてください。
plugins/jcalendarcolor.pl
MTOS/MT 4 用の場合,ダウンロードしたファイルを展開し,プラグイン用フォルダに保存してください。次のディレクトリ構成となります。
plugins/
JCalendarColor/
JCalendarColor.pl
lib/
JCalendarColor/
L10N.pm
L10N/
en_us.pm
ja.pm
php/
function.mtcalendarcolor.php
使えるようになるタグ
プラグインの導入により,次タグが使えるようになります。
- <$MTCalendarColor$>:
色を出力するタグです。属性で色の指定を行います。
<$MTCalendarColor$> で指定できる属性
<$MTCalendarColor$> では,属性として色などを指定することができます。
- holidaycolor: 休日(日曜日・祝祭日)の色を指定します。
#RRGGBB の16進形式,#RGB の16進形式,色名,クラス名など何でも使えます。
デフォルトは #FFCCFF です。
- saturdaycolor: 土曜日の色を指定します。指定できる色の形式は休日と同じです。
デフォルトは #CCCCFF です。
- oddcolcolor: 奇数カラムの色を指定します。
カレンダーで奇数番目の欄の曜日である,月・水・金の色を指定します。
指定できる色の形式は休日と同じです。
デフォルトは #FFFFFF です。
- evencolcolor: 偶数カラムの色を指定します。
カレンダーで偶数番目の欄の曜日である,火・木・土の色を指定します。
指定できる色の形式は休日と同じです。
デフォルトは #FFFFFF です。
- month:
年月を "YYYYMM" の形式で指定します。例えば month="200403" とします。
例外として,month="this" という指定が可能です。
month="this" とした場合,月別アーカイブで指定した月と同じになります。
month を指定しない場合は,今現在の年月となります。
使い方
色指定タグは,Main Index テンプレートの中のカレンダーの色指定の場所で使います。
属性を指定しないのが一番簡単な方法です。
<MTCalendar>
<MTCalendarWeekHeader><tr></MTCalendarWeekHeader>
<td style="text-align: center; background-color: <$MTCalendarColor$>">
<span class="calendar">
<MTCalendarIfEntries><MTEntries lastn="1">
<a href="<$MTEntryPermalink$>" title="<$MTEntryTitle$>"><$MTCalendarDay$></a>
</MTEntries></MTCalendarIfEntries>
<MTCalendarIfNoEntries><$MTCalendarDay$></MTCalendarIfNoEntries>
<MTCalendarIfBlank> </MTCalendarIfBlank>
</span>
</td>
<MTCalendarWeekFooter></tr></MTCalendarWeekFooter>
</MTCalendar>
また,<MTCalendarIfToday> と併用したい場合は,次のように MTElse を使うことで可能です。
<td style="text-align: center; <MTCalendarIfToday>border: solid 2px black; background-color:#00FF00; <MTElse>background-color: <$MTCalendarColor$>;</MTElse></MTCalendarIfToday>">
タグの中ではできるだけ改行しないことをお勧めします。
カレンダーを綺麗に見せるコツは,table タグの属性 cellspacing の値を 0 にすることです。カレンダーのための table タグで,例えば次のように指定します。これはお好みで。
<table border="0" cellspacing="0" cellpadding="2" width="160">
このタグ <$MTCalendarColor$> は色を出力するだけですので,
背景だけでなく,フォントの色指定にも使うことができます。2番目のサンプルのコードは次のようになっています。
<MTCalendar>
<MTCalendarWeekHeader><tr></MTCalendarWeekHeader>
<td align="center" style="font-weight: bold;<MTCalendarIfToday>border:solid 1px red;</MTCalendarIfToday>">
<span style="color: <$MTCalendarColor holidaycolor="#FF0000" saturdaycolor="#0000FF" evencolcolor="#000000" oddcolcolor="#000000"$>">
<MTCalendarIfEntries><MTEntries lastn="1">
<a href="<$MTEntryPermalink$>" title="<$MTEntryTitle$>"><$MTCalendarDay$></a>
</MTEntries></MTCalendarIfEntries>
<MTCalendarIfNoEntries><$MTCalendarDay$></MTCalendarIfNoEntries>
<MTCalendarIfBlank> </MTCalendarIfBlank>
</span>
</td>
<MTCalendarWeekFooter></tr></MTCalendarWeekFooter>
</MTCalendar>
フォントの色を変えるようにした場合,リンクが張られるとリンクの属性が優先されますので,色が変わることがあります。
スタイルシートによる色の指定
上ではインラインスタイルで色を指定していますが,スタイルシートで色づけをすることもできます。詳しくは nlog(n): カレンダーの全面的な見直し をご覧ください。
使用上の注意
Calendar::Japanese::Holiday がインストールされていない環境で使うと,次のようなことが起こるのでご注意ください。
- カレンダー表示がくずれることがあります。
- <$MTCalendarColor$> タグが何も出力しません。
- このプラグインをプラグインフォルダに置くと,MovableType のエントリを再構築したり,保存したりするだけでエラーになります。
ご利用に関して
無料でご利用になれます。商用利用も可能です。
無保証
無保証です。何か問題が起きたとしても,作者は責任を持ちません。ご自身の責任の下でご利用ください。
ご意見
ご使用になったバージョンのリリース情報 (下記参照) のコメント欄にお願いします。
謝辞
Date::Japanese::Holiday - Calculate Japanese Holiday
の作者である IKEBE Tomohiro さん,
Calendar::Japanese::Holiday - Japanese holidays in calender
の作者である Kazuyoshi Tomita さん,
PEAR::Date_Holidays_Driver_Japanese
の作者である shimooka さん
に感謝します。
更新履歴
- バージョン 0.9-1.3 の情報は,nlog(n) - 休日表示カレンダープラグイン をご覧ください。
- 2004年12月23日 バージョン 2.0 リリース
[リリース情報]
for MT 2/MT 3: jcalendarcolor-2.0.pl
- 2008年2月29日 バージョン 2.10 リリース
[リリース情報]
for MTOS 4/MT 4: JCalendarColor-2.10.tar.gz,
JCalendarColor-2.10.zip
- 2008年3月29日 バージョン 2.20 リリース
[リリース情報]
for MT 2/MT 3: jcalendarcolor-2.2.pl
for MTOS 4/MT 4: JCalendarColor-2.20.tar.gz,
JCalendarColor-2.20.zip
- 振替の振替が休日となることに対応
- 必要モジュールに Calendar::Japanese::Holiday を追加
- 2008年7月29日 バージョン 2.30 リリース
[リリース情報]
for MT 2/MT 3: jcalendarcolor-2.3.pl
for MTOS 4/MT 4: JCalendarColor-2.30.tar.gz,
JCalendarColor-2.30.zip
- ダイナミックパブリッシングに対応 (PEAR Date_Holidays_Driver_Japanese が必要)
- スタティックパブリッシング時の必要 CPAN モジュールを Date::Calc, Calendar::Japanese::Holiday とし,Date::Japanese::Holiday は不要とした