印刷用表示へ切り替え 通常表示へ切り替え 更新履歴を表示 更新履歴を隠す
DownloadMovableTypePlugin 休日表示カレンダープラグイン 1.1

バージョン 1.0 では、土曜日に色を指定したとき、日付が入っていない場合にも土曜の色がついてしまっていた。修正して 休日表示カレンダープラグイン 1.1 としてリリースする。

■ ■ ■

200405/jcalendar.1.0-May.gif
バージョン 1.0 での問題は、29日の下のセル。土曜日の色がついてしまっている。

200405/jcalendar.1.1-May.gif
修正をして、空セルの色を消した。

かなり手を加えたので、エンバグした可能性もある。

あまり意味はないかも知れないが、今回から古いバージョンも公開することにした。

2004年7月26日追記:
休日表示カレンダープラグイン 1.2 にバージョンアップ

Posted by n at 2004-05-31 21:21 | Edit | Comments (5) | Trackback(0)
Trackbacks

  • 「手違いで複数トラックバックを送ってしまった!」という場合でも気にしないでください (重複分はこちらで勝手に削除させていただきます)
  • タイムアウトエラーは,こちらのサーバの処理能力不足が原因です (詳細は トラックバック送信時のエラー をご覧ください)
  • トラックバックする記事には,この記事へのリンクを含めてください(詳細は 迷惑トラックバック対策 をご覧ください)
Comments

休日表示カレンダープラグイン 1.1
を利用させてもらいました。いい感じに仕上がりますね。
さて、色付けをしているうちに、evencolcolorが使えないことが分かりました。どうやら53行目の後に条件分岐が一つ足りなく、下のようにelseを一つ追加すると、evencolcolorがうまく働くようになりました。
更新版を公開する際に取り込んでいただければと思います。

$ diff -c jcalendarcolor.pl.orig jcalendarcolor.pl
*** jcalendarcolor.pl.orig 2004-07-25 04:51:38.000000000 +0900
--- jcalendarcolor.pl 2004-07-25 05:27:28.000000000 +0900
***************
*** 51,56 ****
--- 51,58 ----
$color = $saturdaycolor ? $saturdaycolor : $oddcolcolor;
} elsif (($num % 7) % 2) {
$color = $oddcolcolor;
+ } else {
+ $color = $evencolcolor;
}
} else {
if (($num % 7) % 2 || ($num % 7 == 0)) {

Posted by: なかう at July 25, 2004 05:39

連続してしまい、すみません。
↓を参考に、月曜日を先頭とするように改変したところ、土曜日に色を付けられなくなりました。
http://skys.jp/blog/archives/200404/12-1643.php
曜日を回転しても、土曜日も色が付くように変更したのが下のpatchです。

他にも実装方法はあると思いますし、差し出がましいようで、恐縮ですが。よろしくお願いします。

@@ -21,6 +21,7 @@
$VERSION = 1.1;

use Date::Japanese::Holiday qw(is_japanese_holiday);
+use Time::Local;

sub CCalendarColor {
my ($ctx, $args) = @_;
@@ -47,10 +48,13 @@
if ((lc($holidaycolor) ne 'none') &&
is_japanese_holiday($year, $month, $day)) {
$color = $holidaycolor;
- } elsif ($num % 7 == 0) {
- $color = $saturdaycolor ? $saturdaycolor : $oddcolcolor;
+ } elsif ( ((localtime(timelocal(0,0,0,$day,$month-1,$year)))[6] == 6)
+ && $saturdaycolor) {
+ $color = $saturdaycolor;
} elsif (($num % 7) % 2) {
$color = $oddcolcolor;

Posted by: なかう at July 25, 2004 07:33

ありがとうございました。次回のバージョンアップ時に反映したいと思います。

Posted by: n at July 25, 2004 22:43

早速の対応有難うございました。さて、再び変更案で恐縮ですが、よろしくお願いします。

システムのタイムゾーンとMovabletypeのタイムゾーンが異なる際に、月変わり時に色配分が崩れる問題を修正。

私の管理するサーバがzone=-8なのですが、その上でzone=9(JST)な設定のMovabletypeを動かすと、現在色化けしてしまっています。そこで、localtime関数の代わりにsever_offset変数を使うように変更してみました。

--- jcalendarcolor.pl.orig 2004-07-31 21:55:52.325845865 -0800
+++ jcalendarcolor.pl.pub 2004-07-31 21:55:40.252760270 -0800
@@ -37,3 +37,5 @@
my $num = $_[0]->stash('calendar_cell');
- my $ltime = (((localtime)[5]+1900)*100) + (localtime)[4] + 1;
+ my $tz = $_[0]->stash('blog')->server_offset();
+ my $now = time()+$tz*3600;
+ my $ltime = (((gmtime($now))[5]+1900)*100) + (gmtime($now))[4] + 1;
my $period = $args->{month} || $ltime;

Posted by: なかう at August 01, 2004 15:13

そういう問題があることは全く考えていませんでした。
サーバシステムのタイムゾーンを使うのではなく、MovableType のタイムゾーンを使うというというアイデアですね。うまい。次回のバージョンに反映します。

Posted by: n at August 03, 2004 06:20
Post a comment
  • 電子メールアドレスは必須ですが,表示されません (気になる場合は「メールアドレスのような」文字列でもOKです)
  • URL を入力した場合はリンクが張られます
  • コメント欄内ではタグは使えません
  • コメント欄内に URL を記入した場合は自動的にリンクに変換されます
  • コメント欄内の改行はそのまま改行となります
  • 「Confirmation Code」に表示されている数字を入力してください (迷惑コメント対策です)


(必須, 表示されます)


(必須, 表示されません)


(任意, リンクされます)


Confirmation Code (必須)


Remember info (R)?