Download
MovableType
Plugin

休日表示カレンダープラグイン2

これは,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>&nbsp;</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>&nbsp;</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 さん に感謝します。


更新履歴

  1. バージョン 0.9-1.3 の情報は,nlog(n) - 休日表示カレンダープラグイン をご覧ください。
  2. 2004年12月23日 バージョン 2.0 リリース [リリース情報]
    for MT 2/MT 3: jcalendarcolor-2.0.pl
    • MT3 のプラグイン登録に対応
  3. 2008年2月29日 バージョン 2.10 リリース [リリース情報]
    for MTOS 4/MT 4: JCalendarColor-2.10.tar.gz, JCalendarColor-2.10.zip
  4. 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 を追加
  5. 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 は不要とした