Flash カレンダープラグイン(3.00 対応版) for Serene Bach
当サイトで公開中の「Flash カレンダープラグイン for Serene Bach」をバージョンアップ致しました。
このプラグインは、Serene Bach で、Kinarie&May さんが配布されている Movable Type 用の Flash カレンダーを使えるようにするためのプラグインですが、配布元の Kinarie&May さんが Movable Type 用の Flash カレンダーをバージョンアップされ、「MT用横型フラッシュカレンダー3.00」を公開されていました(トラックバックで知りました)。
頂いたトラックバックでも「これまでのプラグインでは正常に動作しない」ということが書かれてましたので、早速試してみたところ、バージョンアップされた Flash カレンダーは読み込むためのXMLファイルのフォーマットが大幅に変更されてました。したがって、以前のFlash カレンダープラグインでは フラッシュカレンダー3.00 は利用することができません。
ということで、今回バージョンアップに対応したプラグインを新たに作成しました。Kinarie&May さんは以前のカレンダーもそのまま配布されているようですので、お好きな方をお選びください。
当サイトのテンプレートではどのブログツールか分かりづらいので、Serene Bach テンプレート配布サイトとして有名な宵闇書房さんの「grayish」をサンプルにさせて頂きました。
左は Flash カレンダー適用前のスクリーンショットです(クリックすると全体が表示されます)。
1.プラグインのダウンロード
下記のリンク先にある FlashCalendarHandler.zip または FlashCalendarHandler.lzh をクリックして、プラグインのアーカイブをダウンロードしてください。
FlashCalendarHandler.zip / FlashCalendarHandler.lzh
2007.04.10 Ver 2.00 公開
2007.04.18 Ver 2.01 XMLファイルが正常に生成されない不具合を修正
2007.05.28 Ver 2.02 EUC-JP版でXMLファイルが正常に生成されない不具合を修正
2007.05.28 Ver 2.03 本文・追記のCDATA化・タイムゾーンが適正に収集されない不具合を修正
2007.06.04 Ver 2.04 channel 要素が付与されない不具合を修正
2.プラグインのアップロード
ダウンロードしたアーカイブを解凍し、中にある FlashCalendarHandler.pm を plugins ディレクトリ直下に、resource/ja/flashcalendarhandler.txt を、同じディレクトリの構成があると思いますので、flashcalendarhandler.txt のみを ja 配下にアップロードしてください。
アップロードの後、Serene Bach の管理画面を起動し、「環境設定」→「プラグイン」をクリックし、プラグイン一覧に FlashCalendarHandler.pm が表示されていることを確認し、一番右のチェックボックスをチェックして右下の「利用する」をクリックしてください。
3.テンプレートの設定
3.1 フラッシュカレンダー表示用 object タグの作成
Kinarie&May さんのサイトにある「MT用横型フラッシュカレンダー3.00」のページを参考に、フラッシュカレンダー表示用 object タグを下記の手順で作成します。
- swf ファイルのダウンロード(設置方法1)
- swf ファイルのアップロード(設置方法2)
- ソース(Object タグ)の作成(設置方法4)
「設置方法3」は Movable Type のための説明ですのでスキップしてください。
そして作成した object タグを、HTMLテンプレートのカレンダーを表示したい部分に貼り付けてください。
最後の「Object タグの作成」で、「XMLフォルダアドレス」を入力する項目があります。このアドレスには index.html までのURL(例:http://user-domain/)と
http://user-domain/xml/
と、青色で示したファイル名 xml ディレクトリを加えた内容を入力してください。最後の"/"をお忘れなく。
このディレクトリはFlash が読む込むためのXMLファイルを保存するディレクトリで、プラグインが自動生成します。
以前のバージョンでは calendar.xml というファイルをひとつだけ生成していましたが、3.00 対応では年月分のXMLファイル(yyyy_mm.xml)を生成する必要があります(2007年4月のエントリー情報が含まれるファイル名は "2007_04.xml" となります)。
そのため、xml ディレクトリを作成し、メインページがあるディレクトりが煩雑にならないようにしています。
設定画面の「設置場所」は「通常使用」を選択してください。デザイン・カラーはお好みに合わせて修正してください。
3.2 フラッシュカレンダー用XML出力の独自ブロック
下記の独自ブロック(青色)をベースHTMLテンプレートの任意の位置に貼り付けてください。例は </body> の直前に設定した場合です。
注:個別記事用HTMLテンプレートを利用されている場合も、ベースHTMLテンプレートのみに設定してください。
<!-- BEGIN flash_calendar -->
<!-- END flash_calendar -->
</body>
</html>
これは、3.1項で設定した XML ファイルを出力するためのタグです。このファイルは swf ファイルが読み込む XML ファイルで、ページ上には何も表示されません。
4.ページの再構築
タグを貼り付けた後、インデックス(または全体)のページ再構築を行います。ブログに Flash カレンダーが表示されればOKです。スタイルは適宜設定してください。
表示されない場合、index.html があるディレクトリに xml ディレクトリおよびその配下に yyyy_mm.xml という年月別のファイルが作成されていることを確認してください。ファイルの有無で下記のいずれかの原因が考えられます。
- 作成されている場合:3.1項の「ソース(Object タグ)の作成」で設定内容に誤りがある可能性があります。
- 作成されていない場合:プラグインの設定または独自ブロックの設定に誤りがある可能性があります。
yyyy_mm.xml というファイルがひとつでも生成されていれば、Object タグで swf ファイルおよび yyyy_mm.xml を読み込む動作はブログの動作と関係ありませんので、簡素な HTMLページ を作り、そこに Object タグを貼り付けて Flash が表示されるかどうか確認してみてください。
5.swf ファイルのキャッシュについて
エントリー投稿や再構築によって yyyy_mm.xml が更新されることは確認済ですが、ブラウザを更新してもカレンダー表示が更新されない場合があります。この原因は、yyyy_mm.xml を取得する swf ファイル自体がキャッシュから取得されてしまうようです。
これは利用しているレンタルサーバやブラウザの設定に依存するようです。
毎回最新の情報を取得するのであれば「ブラウザのキャッシュをクリアする」を参考にしてみてください。
6.参考:動作の仕組み
Flashカレンダーは、記事タイトル一覧と投稿日が記述された XML を Flash が読み込む元データとしてカレンダーを表示します。
Movable Type ではカレンダー表示用のタグとユーザが作成できるテンプレートを利用すればXMLを簡単に出力できますが、Serene Bach にはユーザがテンプレートやXMLファイルを出力する機能がないためプラグインで実現しました。
2007.04.18
バグ修正に伴い 2.01 をリリースしました。
2007.05.28
バグ修正に伴い 2.02 をリリースしました。
Flash カレンダープラグイン バージョンアップ
先日公開した「Flash カレンダープラグイン for Serene Bach」に不具合がありましたのでバージョンアップしました。
1.不具合
EUC-JP 版の Serene Bach で Ver1.00 の Flash カレンダープラグインを使用した場合、カレンダーの日付をマウスポイントした時に表示される記事タイトルが文字化けします。
2.原因
Flash カレンダー自体が UTF-8 にしか対応していないため、プラグインで生成する calendar.xml の文字コードがUTF-8 である必要がありますが、当方の認識不足でブログに依存した文字コードの calendar.xml を出力していました。
つまり、EUC-JP版の Serene Bach の場合、文字コード EUC-JP の calendar.xml を出力するため、前述の不具合が発生します。
これは neige essai さんの記事で気がつきました。ありがとうございました。
3.対処内容
文字コード UTF-8 の calendar.xml を出力するように変更しましたので、EUC-JP版 Serene Bach にも対応可能です。
ということで、現在 1.01 のプラグインを公開しています。EUC-JP版でブログを運用されている方はこちらをご利用ください。
Flash カレンダープラグイン for Serene Bach
Serene Bach で、Kinarie&May さんが配布されている Movable Type 用の Flash カレンダー(通常版/横型)を使えるようにするためのプラグインです。
注:このプラグインは 2.0x までの対応です。フラッシュカレンダー 3.00 をご利用の場合は「Flash カレンダープラグイン(3.00 対応版) for Serene Bach」をご覧ください。
当サイトのテンプレートではどのブログツールか分かりづらいので、Serene Bach テンプレート配布サイトとして有名な宵闇書房さんの「grayish」をサンプルにさせて頂きました。
左は Flash カレンダー適用前のスクリーンショットです(クリックすると全体が表示されます)。
1.プラグインのダウンロード
下記のリンク先にある FlashCalendarHandler.zip または FlashCalendarHandler.lzh をクリックして、プラグインのアーカイブをダウンロードしてください。
FlashCalendarHandler.zip / FlashCalendarHandler.lzh
2006.09.14 Ver 1.00
2006.09.21 Ver 1.01 EUC-JP版対応
2006.09.26 Ver 1.02 文字コード変換を sb::Language 使用に変更
2006.09.28 Ver 1.03 calendar.xml に相対パス指定
2.プラグインのアップロード
ダウンロードしたアーカイブを解凍し、中にある FlashCalendarHandler.pm を plugins ディレクトリ直下に、resource/ja/flashcalendarhandler.txt を、同じディレクトリの構成があると思いますので、flashcalendarhandler.txt のみを ja 配下にアップロードしてください。
アップロードの後、Serene Bach の管理画面を起動し、「環境設定」→「プラグイン」をクリックし、プラグイン一覧に FlashCalendarHandler.pm が表示されていることを確認し、一番右のチェックボックスをチェックして右下の「利用する」をクリックしてください。
3.テンプレートの設定
3.1 フラッシュカレンダー表示用 object タグの作成
Kinarie&May さんのサイトにある「MT用通常版flashカレンダー」または「MT用横型flashカレンダー」のページを参考に、フラッシュカレンダー表示用 object タグを作成します。そして作成した object タグを、HTMLテンプレートのカレンダーを表示したい部分に貼り付けてください。
- swf ファイルのダウンロード(解説ページの1項)
- swf ファイルのアップロード(解説ページの2項)
- Object タグの作成(解説ページの3項)
3.の「Object タグの作成」で、「XMLファイルアドレス」を入力する項目があります。このアドレスには index.html までのURL(例:http://user-domain/)と
http://user-domain/calendar.xml
と、青色で示したファイル名 calendar.xml を加えた内容を入力してください。
また、その下のラジオボタンは「通常使用」を選択してください。デザイン・カラーはお好みに合わせて修正してください。
3.2 フラッシュカレンダー用XML出力の独自ブロック
下記の独自ブロック(青色)をベースHTMLテンプレートの任意の位置に貼り付けてください。例は </body> の直前に設定した場合です。
注:個別記事用HTMLテンプレートを利用されている場合も、ベースHTMLテンプレートのみに設定してください。
<!-- BEGIN flash_calendar -->
<!-- END flash_calendar -->
</body>
</html>
これは、3.1項で設定した calendar.xml を出力するためのタグです。calendar.xml は swf ファイルが読み込む XML ファイルです。ページ上には何も表示されません。
4.ページの再構築
タグを貼り付けた後、インデックス(または全体)のページ再構築を行います。ブログに Flash カレンダーが表示されればOKです。スタイルは適宜設定してください。
表示されない場合、index.html があるディレクトリに calendar.xml というファイルが作成されていることを確認してください。ファイルの有無で下記のいずれかの原因が考えられます。
- 作成されている場合:3.1項の「3.Object タグの作成」で設定内容に誤りがある可能性があります。
- 作成されていない場合:プラグインの設定または独自ブロックの設定に誤りがある可能性があります。
calendar.xml が生成されていれば、Object タグで swf ファイルおよび calendar.xml を読み込む動作はブログの動作と関係ありませんので、簡素な HTMLページ を作り、そこに Object タグを貼り付けて Flash が表示されるかどうか確認してみてください。
5.swf ファイルのキャッシュについて
エントリー投稿や再構築によって calendar.xml が更新されることは確認済ですが、ブラウザを更新してもカレンダー表示が更新されない場合があります。この原因は、calendar.xml を取得する swf ファイル自体がキャッシュから取得されてしまうようです。
これは利用しているレンタルサーバやブラウザの設定に依存するようです。
毎回最新の情報を取得するのであれば「ブラウザのキャッシュをクリアする」を参考にしてみてください。
6.参考:動作の仕組み
Flashカレンダーは、記事タイトル一覧と投稿日が記述された XML を Flash が読み込む元データとしてカレンダーを表示します。
Movable Type ではカレンダー表示用のタグとユーザが作成できるテンプレートを利用すればXMLを簡単に出力できますが、Serene Bach にはユーザがテンプレートやXMLファイルを出力する機能がないためプラグインで実現しました。
2006.12.20 追記
「独自タグ」は誤記でしたので、「独自ブロック」に修正しました。
2007.04.10 追記
2項の flashcalendarhandler.txt というファイル名が誤ってましたので修正しました。また 3.00 版へのリンクを追加しました。
休日表示付リアルタイムカレンダープラグイン(横型) for Serene Bach 不具合修正のお知らせ
トラックバックを頂いて気がついたのですが、休日表示付リアルタイムカレンダープラグイン(横型) for Serene Bach に不具合がありました。
具体的には、カレンダーの日付のリンクが連続している、つまり毎日投稿している場合、CSSの設定が全て反映されません。
本日プラグインを修正致しましたので、これまでご利用頂いている方は申し訳ございませんが休日表示付リアルタイムカレンダープラグイン(横型) for Serene Bach のエントリーよりプラグインの差し替えをお願い致します。また「プラグインが有効にならない」という方にはプラグインに実装しているスクリプトを抜き出し、直接テンプレートに設定して頂いてますが、その場合は下記の青色部分を1行追加してください。
テーブル型のプラグインには影響ありません。
:
// add span
buf = buf.replace(/¥¥s(¥¥d+)¥¥s/gi," <span class=¥¥"day¥¥">¥$1<¥¥/span> ");
buf = buf.replace(/¥¥s(¥¥d+)¥¥s/gi," <span class=¥¥"day¥¥">¥$1<¥¥/span> ");
buf = buf.replace(/¥¥s(<a¥¥s¥¥S+>¥¥d+<¥¥/a>)¥¥s/gi," <span class=¥¥"day¥¥">¥$1<¥¥/span> ");
buf = buf.replace(/¥¥s(<a¥¥s¥¥S+>¥¥d+<¥¥/a>)¥¥s/gi," <span class=¥¥"day¥¥">¥$1<¥¥/span> ");
element.innerHTML = buf;
:
以上です。
ご迷惑をおかけして申し訳ありませんがよろしくお願い致します。
休日表示付リアルタイムカレンダープラグイン(横型) for Serene Bach
|
注:本プラグインは横型カレンダー(独自タグが {calendar_horizontal})専用です。
1.プラグインのダウンロード
下記のリンク先にある RealTimeHolidayCalendar2.zip または RealTimeHolidayCalendar2.lzh をクリックして、プラグインのアーカイブをダウンロードしてください。
2006.04.03 Ver 1.00 初版
2006.04.23 Ver 1.01 リンクが連続する場合にスタイルが反映されない不具合を修正
ダウンロードしたアーカイブを解凍し、中にある RealTimeHolidayCalendar2.pm を plugins ディレクトリ直下に、resource/ja/realtime_holidaycalendar2.txt を、同じディレクトリの構成があると思いますので、realtime_holidaycalendar2.txt のみを ja 配下にアップロードしてください。
アップロードの後、Serene Bach の管理画面を起動し、「環境設定」→「プラグイン」をクリックし、プラグイン一覧に RealTimeHolidayCategory2.pm が表示されていることを確認し、一番右のチェックボックスをチェックして右下の「利用する」をクリックしてください。
注:リアルタイムカレンダープラグインをご利用の場合はリアルタイムカレンダープラグインの利用を停止してください。
2.休日表示用カレンダースクリプトのダウンロード・アップロード
下記のリンク先にある dayChecker.js をクリックして休日表示用カレンダースクリプトをダウンロードしてください。
ダウンロードした dayChecker.js を index.html と同じディレクトリにアップロードしてください。
3.独自タグの設定1
2項でダウンロードした dayChecker.js を使うための宣言を、ベースHTMLテンプレートに設定します。個別エントリー用HTMLテンプレートを設定している場合はそちらも同じ設定を行ってください。
下記のように </head> の前辺りに青色のブロックおよび独自タグを設定します。
:
<!-- BEGIN rt_holiday_calendar -->
{rt_holiday_calendar_script}
<!-- END rt_holiday_calendar -->
</head>
:
4.独自タグの設定2
新しく横型カレンダーを設置される場合、ベースHTMLテンプレート(個別エントリーを使っている場合はそちらも)のバナーの下にカレンダー用の独自タグおよび休日表示用カレンダースクリプトの独自タグ(青色)を下記のように追加してください。
<!-- BEGIN title -->
<div id="banner">
<h1 id="banner-header">{blog_name}</h1>
<h2 id="banner-description">{blog_description}</h2>
</div>
<!-- END title -->
<!-- BEGIN calendar -->
<div id="rt_holiday_calendar">
{calendar_horizontal}
</div>
<!-- END calendar -->
<!-- BEGIN rt_holiday_calendar -->
{rt_holiday_script}
<!-- END rt_holiday_calendar -->
カレンダー独自タグをすでに設定されている場合、下記の青色部分を追加してください。
<!-- BEGIN calendar -->
<div id="rt_holiday_calendar">
{calendar_horizontal}
</div>
<!-- END calendar -->
<!-- BEGIN rt_holiday_calendar -->
{rt_holiday_script}
<!-- END rt_holiday_calendar -->
ここでは div タグに id 属性を追加していますが、タグの構成が異なる場合、id 属性 rt_holiday_calendar を {calendar_horizontal} で括っているタグに付与してください(タグの構成が異なる場合、後述のCSSの設定で若干変更が必要になるかも知れません)。{calendar_horizontal} がタグで括られていない場合は下のように div タグを追加してください。
リアルタイムカレンダープラグインをご利用されていた方は、rt_calendar という id 属性を rt_holiday_calendar に変更してください。
5.CSSの設定
スタイルシートに下記の設定を追加してください。
#rt_holiday_calendar {
font-size: 9px;
text-align: center;
padding: 5px 0; /* カレンダー上下のパディング */
border-bottom : 1px solid #666699; /* カレンダー下の罫線 */
}
.today {
padding: 0 1px;
border: 1px solid #444444;
}
.holiday,
.holiday a:link {
color: #e50003;
}
.saturday,
.saturday a:link {
color: #0000ff;
}
.tholiday {
border: 1px solid #444444;
color: #e50003;
}
.tholiday a:link {
color: #e50003;
}
.tsaturday {
border: 1px solid #444444;
color: #0000ff;
}
.tsaturday a:link {
color: #0000ff;
}
上記の #rt_holiday_calendar は公開テンプレートに併せた設定ですので、ご利用のテンプレートに併せて適宜修正してください。
なお平日・土・日祝日の span 要素に対し、下記のセレクタを設定しています(span 要素は JavaScript で後から設定していますのでソース上は見えません)。
- 平日(本日):today
- 土(本日以外):saturday
- 土(本日・リンクなし):tsaturday
- 土(本日・リンクあり):tsaturday a:link
- 日祝日(本日以外):holiday
- 日祝日(本日・リンクなし):tholiday
- 日祝日(本日・リンクあり):tholiday a:link
公開テンプレートをご利用の場合、設定されている today セレクタ(下記)を削除してください。
.today {
display: block;
text-align: center;
color: #444444;
border: 1px solid #444444;
}
6.CSSが反映されない場合
カレンダー全体を他の id 属性で括り、それに対してCSSを設定している場合、5項のCSSが反映されない可能性があります(id 属性に対するCSSが優先されるため)。その場合は古いCSSを削除するか、5項の設定を
:
#rt_holiday_calendar .today {
padding: 0 1px;
border: 1px solid #444444;
}
#rt_holiday_calendar .holiday,
#rt_holiday_calendar .holiday a:link {
color: #e50003;
}
#rt_holiday_calendar .saturday,
#rt_holiday_calendar .saturday a:link {
color: #0000ff;
}
#rt_holiday_calendar .tholiday {
border: 1px solid #444444;
color: #e50003;
}
#rt_holiday_calendar .tholiday a:link {
color: #e50003;
}
#rt_holiday_calendar .tsaturday {
border: 1px solid #444444;
color: #0000ff;
}
#rt_holiday_calendar .tsaturday a:link {
color: #0000ff;
}
としてください。#rt_holiday_calendar の後ろの半角空白を忘れずに。
7.その他
休日表示付リアルタイムカレンダープラグイン for Serene Bachでプラグインが反映されないという報告を頂いてますが原因不明のため、プラグインに記しているスクリプトを直接埋め込むように回答しています。不具合が発生して設定方法が分からない方はご連絡ください。
2006.04.23 追記
プラグインでリンクが連続する場合にスタイルが反映されない不具合を修正しました。また6項を追記しました。
休日表示付リアルタイムカレンダープラグイン for Serene Bach
|
注:本プラグインで動作を確認できているのはテーブル型カレンダー、独自タグが {calendar2} のみです。
1.プラグインのダウンロード
下記のリンク先にある RealTimeHolidayCalendar.zip または RealTimeHolidayCalendar.lzh をクリックして、プラグインのアーカイブをダウンロードしてください。
RealTimeHolidayCalendar.zip / RealTimeHolidayCalendar.lzh
ダウンロードしたアーカイブを解凍し、中にある RealTimeHolidayCalendar.pm を plugins ディレクトリ直下に、resource/ja/realtime_holidaycalendar.txt を、同じディレクトリの構成があると思いますので、realtime_holidaycalendar.txt のみを ja 配下にアップロードしてください。
アップロードの後、Serene Bach の管理画面を起動し、「環境設定」→「プラグイン」をクリックし、プラグイン一覧に RealTimeHolidayCategory.pm が表示されていることを確認し、一番右のチェックボックスをチェックして右下の「利用する」をクリックしてください。
注:リアルタイムカレンダープラグインをご利用の場合はリアルタイムカレンダープラグインの利用を停止してください。
2.休日表示用カレンダースクリプトのダウンロード・アップロード
下記のリンク先にある dayChecker.js をクリックして休日表示用カレンダースクリプトをダウンロードしてください。
ダウンロードした dayChecker.js を index.html と同じディレクトリにアップロードしてください。
3.独自タグの設定1
2項でダウンロードした dayChecker.js を使うための宣言を、ベースHTMLテンプレートに設定します。個別エントリー用HTMLテンプレートを設定している場合はそちらも同じ設定を行ってください。
下記のように </head> の前辺りに青色のブロックおよび独自タグを設定します。
:
<!-- BEGIN rt_holiday_calendar -->
{rt_holiday_calendar_script}
<!-- END rt_holiday_calendar -->
</head>
:
4.独自タグの設定2
ベースHTMLテンプレートのサイドバーに設定しているカテゴリー表示用のブロック名および、独自タグを下記のように変更してください。
<!-- BEGIN calendar -->
<div class="side">
<div class="calendar">
{calendar2}
</div>
</div>
<!-- END calendar -->
<!-- BEGIN rt_holiday_calendar -->
{rt_holiday_script}
<!-- END rt_holiday_calendar -->
5.カレンダーに id 属性の追加
カレンダータグに、下のサンプルリストのように id 属性として rt_holiday_calendar(青色部分)を追加します。
<!-- BEGIN calendar -->
<div class="side">
<div class="calendar" id="rt_holiday_calendar">
{calendar2}
</div>
</div>
<!-- END calendar -->
<!-- BEGIN rt_holiday_calendar -->
{rt_holiday_script}
<!-- END rt_holiday_calendar -->
サンプルでは公開テンプレートを使って、内側の div タグに id 属性を付与していますが、タグの構造が異なる場合は、{calendar2} 等の独自タグを何らかのタグで括っていると思いますので、そのタグに id 属性を与えてください。
リアルタイムカレンダープラグインをご利用されていた方は rt_calendar という id 属性を rt_holiday_calendar に変更してください。
6.CSSの設定
スタイルシートに下記の設定を追加してください。
.holiday,
.holiday a:link {
color: #e50003;
}
.saturday,
.saturday a:link {
color: #0000ff;
}
.tholiday {
display: block;
border: 1px solid #444444;
color: #e50003;
}
.tholiday a:link {
color: #e50003;
}
.tsaturday {
display: block;
border: 1px solid #444444;
color: #0000ff;
}
.tsaturday a:link {
color: #0000ff;
}
なお平日・土・日祝日の td 要素に対し、下記のセレクタを設定しています。
- 平日(本日):today
- 土(本日以外):saturday
- 土(本日・リンクなし):tsaturday
- 土(本日・リンクあり):tsaturday a:link
- 日祝日(本日以外):holiday
- 日祝日(本日・リンクなし):tholiday
- 日祝日(本日・リンクあり):tholiday a:link
公開テンプレートの場合、today は設定されていますが、設定されていない場合は下記のようなセレクタを追加してください。
.today {
display: block;
text-align: center;
color: #444444;
border: 1px solid #444444;
}
2006.03.27 追記
ページ内のカレンダーより前にテーブルタグが用いられている場合、正常に表示されない不具合を修正しました。
2006.04.11 追記
プラグインのスクリプト部分に誤りがありましたので修正しました。
リアルタイムカレンダープラグイン修正
現在公開中の Serene Bach・リアルタイムカレンダープラグインですが、「本日の日付が正常に表示されない」というご連絡を頂きまして、バグであることが判明しました。
具体的にはカレンダーの表示月と当月比較の処理に誤りがあり、当月が2月から9月の場合にこの不具合が発生します。
下記に修正版の RealTimeCalendar.zip または RealTimeCalendar.lzh を置きましたので、ご利用中の方はクリックしてアーカイブをダウンロードし、プラグインを差し替えください(元エントリーも変更済みです)。
以上です。
ご迷惑をおかけ致しますがよろしくお願い致します。
リアルタイムカレンダープラグイン
Serene Bach カレンダーの本日の日付をリアルタイムに切り替えるプラグインです。
Serene Bach のカレンダーは、本日の日付に span 要素を自動的に付与し、その class 属性 today をCSSで利用することで、日付に枠をつける等の装飾を行うことができます。
ただし index.html 等のスタティックなページについては、日付が変わっても次の再構築が発動するまで日付の装飾を変更することができません。
ということで、過去の日付に与えられている class 属性(today)を本日の日付に付与しなおすプラグインを作りました。スクリーンショットは12月8日に枠がついている状態ですが、この枠を再構築なしで12月9日以降に移動することができます。すでに同じカスタマイズが公開されているようですが、作ってしまったので公開します。プラグイン形式ですが、中身は単なる JavaScript です。
Serene Bach で提供されているカレンダーをそのまま使うことができます。calendar ブロックの独自タグ {calendar} / {calendar2} / {calendar_horizontal} / {calendar_vertical} の4種類のカレンダー全てについて、Windows2000/XP の IE/Firefox/Opera で動作を確認していますが、不具合等ございましたらご連絡ください。
以下カスタマイズ方法です。
1.プラグインのダウンロード・アップロード
下記の RealTimeCalendar.zip または RealTimeCalendar.lzh をクリックしてアーカイブをダウンロードします。
アーカイブを解凍し、中にある RealTimeCalendar.pm を plugins ディレクトリ直下に、resource/ja/rtcalendar.txt を、同じディレクトリの構成があると思いますので、rtcalendar.txt のみを ja 配下にアップロードしてください。
アップロードのあと、Serene Bach の管理画面を起動し、「環境設定」→「プラグイン」をクリックし、プラグイン一覧に RealTimeCalendar.pm が表示されていることを確認し、一番右のチェックボックスをチェックして右下の「利用する」をクリックしてください。
2.ブロックと独自タグの追加
カレンダータグの下に、下のサンプルリストのようにリアルタイムカレンダースクリプト表示用のブロックおよび独自タグ(青色部分)を追加します。
<!-- BEGIN calendar -->
<div class="side">
<div class="calendar">
{calendar2}
</div>
</div>
<!-- END calendar -->
<!-- BEGIN rt_calendar -->
{rt_calendar_script}
<!-- END rt_calendar -->
3.カレンダーに id 属性の追加
カレンダータグに、下のサンプルリストのように id 属性として rt_calendar (青色部分)を追加します。
<!-- BEGIN calendar -->
<div class="side">
<div class="calendar" id="rt_calendar">
{calendar2}
</div>
</div>
<!-- END calendar -->
<!-- BEGIN rt_calendar -->
{rt_calendar_script}
<!-- END rt_calendar -->
サンプルでは公開テンプレートを使って、内側の div タグに id 属性を付与していますが、タグの構造が異なる場合は、{calendar2} 等の独自タグを何らかのタグで括っていると思いますので、そのタグに id 属性を与えてください。
もし他の id 属性がタグに付与されている場合は、ひとつのタグに id 属性を複数与えることはできませんので、先ほどアップロードした RealTimeCalendar.pm を任意のエディタで開き、37行目の
var id = 'rt_calendar';
の赤色部分を、現在使っている id 属性に書き換えてやってください。
4.公開テンプレートをお使いの方へ
公開テンプレートで本プラグインを適用した場合、本日の日付にリンクがあると、リンクのスタイル(色や下線)が適用されなくなるようですので、スタイルシートにある下記の赤色部分を削除(またはコメントアウト)してください。
.today {
display: block;
text-align: center;
color: #444444;
border: 1px solid #444444;
}
以上です。
なおプラグイン作成にあたっては The blog of H.Fujimoto さんの Serene Bach 用プラグインを参考にさせて頂きました。この場をお借りしてお礼申し上げます。
Serene Bach のカレンダーに土・日祝日・本日を表示するプラグインです(sb も大丈夫だと思います)。ここでは公開テンプレートを利用したテーブルタイプのカレンダーに対するカスタマイズ方法をご紹介します。もちろん他のテンプレートでもご利用可能です。

