これは、MovableType のカレンダーに色づけをするプラグインです。
色づけできるのは、日本の休日(日曜・祝祭日)、土曜日、
奇数カラムの曜日(月・水・金)、偶数カラムの曜日(火・木・土)で、
色はそれぞれ別に指定することができます。
1948年4月20日以降、現在まで対応しています。
Movable Type 2.x, 3.x に対応しています。
新バージョンリリースのお知らせ
このバージョンは、コンテナタグを使っていますが、コンテナタグを廃止した 新しいバージョン をリリースしました。
機能は変わりませんが、書式が変わります。コンテナタグで指定した属性を、すべて <$MTCalendarColor$> タグに移す必要があります。
ダウンロードは 休日表示カレンダープラグイン2 からどうぞ。
新規に導入される方は、新バージョンをお勧めします。
また旧バージョンのメンテナンスも引き続き行います。
これまでの書式のままお使いになりたい方は、以下からダウンロードして上書きしてください。
ダウンロード
jcalendarcolor.pl,
jcalendarcolor.tar.gz
または
jcalendarcolor.zip
のいずれかをダウンロードしてください。
内容は同じものです。圧縮ファイルの場合,中のファイルは1つだけですので、解凍後にディレクトリは作りません。
準備
このプラグインには Date::Japanese::Holiday と Calendar::Japanese::Holiday モジュールが必要です。
プラグインをインストールする前に、このモジュールをインストールしておく必要があります。これらのモジュールに関連するモジュールもインストールしてください。
Date::Japanese::Holiday モジュールは CPAN で配布されており、
Linux であればネットワークインストールが可能です。
インストール時は、日本語環境が邪魔になる場合がありますので、LANG=C で LANG 設定をはずしておくことをお勧めします。
# export LANG=C
# perl -MCPAN -e "install 'Date::Japanese::Holiday'"
Calendar::Japanese::Holiday も同様にインストールしてください。
インストール
ダウンロードしたファイルを展開し、プラグイン用フォルダに置いてください。
CGIPath/plugins/jcalendarcolor.pl
使えるようになるタグ
プラグインの導入により、使えるタグは次の2つです。
- <MTCCalendarColor>:
コンテナタグです。このタグで色の指定を行います。
コンテナタグを意味する C がついていますので、C が1つ多くなっています(MTCC...)。
ご注意ください。
- <$MTCalendarColor$>:
実際に色を出力するタグです。上記のコンテナタグの内側で使います。
<MTCCalendarColor> で指定できる属性
コンテナタグ <MTCCalendarColor> では、属性として色などを指定することができます。
- holidaycolor: 休日(日曜日・祝祭日)の色を指定します。
#RRGGBB の16進形式、#RGB の16進形式、または色名が使えます。
古いバージョンの IE などでのブラウズを意識するのであれば、16進形式が無難です。
デフォルトは #FFCCFF です。
holidaycolor="none" と指定すると、休日の色づけを行いません。
- saturdaycolor: 土曜日の色を指定します。指定できる色の形式は休日と同じです。
デフォルトでは色を指定してありませんので、奇数カラムで指定した色に準じます。
- oddcolcolor: 奇数カラムの色を指定します。
カレンダーで奇数番目の欄の曜日である、月・水・金の色を指定します。
指定できる色の形式は休日と同じです。
デフォルトは #FFFFFF です。
- evencolcolor: 偶数カラムの色を指定します。
カレンダーで偶数番目の欄の曜日である、火・木・土の色を指定します。
指定できる色の形式は休日と同じです。
デフォルトは #FFFFFF です。
- month:
年月を "YYYYMM" の形式で指定します。例えば month="200403" とします。
例外として、month="this" という指定が可能です。
month="this" とした場合、月別アーカイブで指定した月と同じになります。
month を指定しない場合は、今現在の年月となります。
使い方
色指定タグは、Main Index テンプレートの中のカレンダーの色指定の場所で使います。
属性を指定しないのが一番簡単な方法です。
<MTCalendar>
<MTCalendarWeekHeader><tr></MTCalendarWeekHeader>
<td style="text-align: center;
<MTCCalendarColor>
background-color: <$MTCalendarColor$>;"
</MTCCalendarColor>
>
<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>
属性を指定することにより、ページのスタイルに合わせることができます。
<td style="text-align: center;
<MTCCalendarColor month="200402" holidaycolor="#FF6666" saturdaycolor="#6699FF" oddcolcolor="#99FF00" evencolcolor="#99FFFF">
background-color: <$MTCalendarColor$>;"
</MTCCalendarColor>
>
また、<MTCalendarIfToday> と併用したい場合は次のようにすればよいでしょう。
<td align="center"
style="
<MTCalendarIfToday>
border: solid 2px black; background-color: #00FF00;
<MTElse>
<MTCCalendarColor>
background-color: <$MTCalendarColor$>;
</MTCCalendarColor>
</MTElse>
</MTCalendarIfToday>"
>
複数行に渡って書いてありますが、タグの中ではできるだけ改行しないことをお勧めします。
カレンダーを綺麗に見せるコツは、table タグの属性 cellspacing の値を 0 にすることです。カレンダーのための table タグで、例えば次のように指定します。
<table border="0" cellspacing="0" cellpadding="2" width="160">
このタグ <$MTCalendarColor$> は色を出力するだけですので、
背景だけでなく、フォントの色指定にも使うことができます。2番目のサンプルのコードは次のようになっています。
<MTCalendar>
<MTCalendarWeekHeader><tr></MTCalendarWeekHeader>
<td style="text-align: center; font-weight: bold;<MTCalendarIfToday>border:solid 1px red;</MTCalendarIfToday>">
<MTCCalendarColor holidaycolor="#FF0000" saturdaycolor="#0000FF" evencolcolor="#000000" oddcolcolor="#000000">
<span style="font-color: <$MTCalendarColor$>">
</MTCCalendarColor>
<MTCalendarIfEntries><MTEntries lastn="1">
<a href="<$MTEntryPermalink$>" title="<$MTEntryTitle$>"><$MTCalendarDay$></a>
</MTEntries></MTCalendarIfEntries>
<MTCalendarIfNoEntries><$MTCalendarDay$></MTCalendarIfNoEntries>
<MTCalendarIfBlank> </MTCalendarIfBlank>
</span>
</td>
<MTCalendarWeekFooter></tr></MTCalendarWeekFooter>
</MTCalendar>
フォントの色を変えるようにした場合、リンクが張られるとリンクの属性が優先されますので、色が変わることがあります。
使用上の注意
Date::Japanese::Holiday がインストールされていない環境では、ご使用にならないでください。
例えば、次のようなことが起こります。
- カレンダー表示がくずれることがあります。
- <$MTCalendarColor$> タグが何も出力しません。
- このプラグインをプラグインフォルダに置くと、MovableType のエントリを再構築したり、保存したりするだけでエラーになります。
<MTCCalendarColor> タグの中に他のメタタグを書くと、再構築に失敗することがあります。リビルドに失敗するときは、<MTCCalendarColor> タグの中に <$MTCalendarColor$> メタタグだけを書くようにしてください。
ご利用に関して
無料でご利用になれます。商用利用はご遠慮ください。
無保証
無保証です。何か問題が起きたとしても、作者は責任を持ちません。ご自身の責任の下でご利用ください。
ライセンス

このworkは、
クリエイティブ・コモンズ・ライセンスの下でライセンスされています。
ご意見
nlog(n): ウェブログ
のコメント欄にお願いします。
謝辞
Date::Japanese::Holiday - Calculate Japanese Holiday
の作者である IKEBE Tomohiro さん,
Calendar::Japanese::Holiday - Japanese holidays in calender - search.cpan.org
の作者である Kazuyoshi Tomita さんに感謝します。
プラグイン作成にあたっては、Fenrir's BLog: MovableTypeのプラグイン作成(邦訳)
が役に立ちました。
更新履歴