Download
MovableType
Plugin

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

これは、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>&nbsp;</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>&nbsp;</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のプラグイン作成(邦訳) が役に立ちました。


更新履歴