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

休日表示カレンダープラグイン のバージョンアップを行った。今回のリリースは 1.3。月の変わり目をウェブログの設定と同期するように修正した。

■ ■ ■

バージョン 1.2 では、サーバのタイムゾーンと MovableType で設定したタイムゾーンが違っている場合、月の変わり目で不整合が生じることがあった。バージョン 1.2 のプラグインは、サーバの時刻に合わせてあったので、MovableType の更新時刻が次の月になっているのにサーバの時刻が前の月の場合、前の月の休日を表示してしまっていた。これは最大でも24時間以内に解消されることではあるのだが、合っていた方がよい。

以下のようにして、MovableType の設定に同期させるようにした。

  my $period = $args->{month}                || '';

  if (lc($period) eq 'this' || $period eq '') {
    my $ct = $ctx->{current_timestamp};
    my $blog_id = $ctx->stash('blog_id');
    my @ts = offset_time_list(time, $blog_id);
    $period = $ct ? substr($ct, 0, 6) : sprintf "%04d%02d", $ts[5]+1900, $ts[4]+1;
  }

今回のバージョンから、$period に初期値としてサーバの時刻を設定しないことにした。month 属性に「this」を設定した場合は、年月を current_timestamp から取得する。月ごとのアーカイブ内で呼ばれる場合がこれに該当する。month 属性に何も設定しなかった場合は、現在の年月を time 関数で取得し、offset_time_list 関数によって、ウェブログで設定したタイムゾーン分だけ補正する。この場合は current_timestamp に値は設定されていないので、補正した時刻から年月を抽出して $period にセットするという形になっている。

month 属性が「this」の時と、何も設定していない時で、if 文を分けてしまった方がよかったのかも知れない。$period に何もセットされないと困るので、お茶を濁してしまった。

2005年1月4日追記:
休日表示カレンダープラグインをバージョンアップし、コンテナタグのタイプのバージョン 1.4 と、コンテナでないバージョン 2.0 にブランチしました(バージョン 2.0, 1.4 リリース情報)。1.3 をお使いの方は 1.4 にバージョンアップできます。1.x と 2.x ではテンプレートタグの書式が違います。新規導入の方は、2.0 をお勧めします。

Posted by n at 2004-08-23 01:23 | Edit | Comments (10) | Trackback(8)
Trackbacks

  • 「手違いで複数トラックバックを送ってしまった!」という場合でも気にしないでください (重複分はこちらで勝手に削除させていただきます)
  • タイムアウトエラーは,こちらのサーバの処理能力不足が原因です (詳細は トラックバック送信時のエラー をご覧ください)
  • トラックバックする記事には,この記事へのリンクを含めてください(詳細は 迷惑トラックバック対策 をご覧ください)
MovableTypeのPluginを入れてみた
お天気表示プラグインと休日表示プラグイン Trackbacked from: バイクとカメラと雑記 at August 28, 2004 14:50
今の悩み事
その1 カレンダーの土日(出来れば祝日も)のセルに色を付けたい。休日表示カレンダープラグインはDate::Japanese::Holidayモジュール等が無いと... Trackbacked from: 半兵衛の徒然記 at October 07, 2004 00:36
休日表示カレンダープラグイン
nlog(n) - 休日表示カレンダープラグインMovableType のカレンダーに色づけをするプラグインです。色づけできるのは、日本の休日(日曜・祝祭日)、土曜日、奇数カラムの曜日(月・水・金)、偶数カラムの曜日(火・木・土)で、色はそれぞれ別に指定することができます。以・b... Trackbacked from: at October 07, 2004 19:43
カレンダーを少し改良しました。
nlog(n) 休日表示カレンダープラグインを使って、色付けしてみました。 これ... Trackbacked from: Magic White at October 07, 2004 23:51
横一列カレンダー
 横1列(横一行)カレンダー自体は珍しくもありません。探してみてみるとゆるゆるな日々の横1行カレンダーというものを見つけました。しかし、これは日にちをすべてまと... Trackbacked from: 半兵衛の徒然記 at October 09, 2004 00:14
休日表示カレンダープラグインの適用
例によって小粋空間さんの記事を参考にして、『カレンダーの本日に枠線を表示』すると... Trackbacked from: 都会の片隅で at December 05, 2004 14:19
休日は赤なんだってば。わかってくださいよ。
nlog(n) - 休日表示カレンダープラグインというプラグインを利用させていただいていたがサーバーをお引越ししたらDate::Japanese::Holidaysがインストールされてなくて困った、困った。しかし、無いなら作る、修正する!ですよね。というのが前回までのおさらいです。 今... Trackbacked from: Kishi-chan.net Blog at February 10, 2005 23:24
Plugins(カレンダーの休日表示)
nlog(n) - 休日表示カレンダープラグイン MTに関して、あまり不勉強であ... Trackbacked from: Poco Blog at September 01, 2005 06:59
Comments

もるです。
前から、カレンダーの土日の数字の色を変えたいと思っていたところに、ちょうどいいプラグインがあるじゃないですか。
ありがたく使わせていただきます。
これで、なんか「もやもや」ってした気分が晴れました。
ところで、トラックバックを送ったのですが、何故かPing 'http://nlogn.ath.cx/opentype/mt-tb.cgi/265' failed: HTTP error: 500 read timeoutというErrorが出たようです。一応正常に更新はされているようですが、ちょっと変な気分。
後、http://nlogn.ath.cx/archives/cat_plugin.html でそれぞれの記事のcommentやtrackbackのリンクをクリックをするとErrorがでますね。でもその後普通にリンク先に飛ぶので、これももやもやっと。
こちらの環境がおかしいのかも知れませんが一応ご報告まで。

Posted by: もる at August 28, 2004 15:03

タイムアウトエラーは、こちらのサーバの処理能力不足が原因です。トラックバックは以下のように処理されます。

そちらからのトラックバック送信
 ↓
こちらでトラックバック受信
 ↓
関連するインデックスを再構築
 ↓
個別エントリ再構築
 ↓
こちらから処理完了通知送信
 ↓
そちらで処理完了通知受信

そちらからトラックバックを送ってから、処理完了通知を受信する前にタイムアウト時間を過ぎてしまうと、500 番のエラーとなってしまいます。このサイトでは、「個別エントリの再構築」を追加してしまっているので、さらに処理時間がかかるようになっています。
タイムアウトは mt.cfg の「PingTimeout」ディレクティブで設定されます。
http://movabletype.jp/manual/mtmanual_configuration.html
デフォルトは 15 秒なので、長くすれば 500 のエラーはなくなると思います(私は 60 秒にしています)。気にされなくてもよいのですが、「今までに送信したトラックバック」に記録が残らないのでもやもやっとしますよね。この説明でスッキリされることを期待します。

カテゴリー一覧の方は(エラーではないのですが)こちらのミスです。修正しておきます。

ご報告ありがとうございました。

Posted by: n at August 28, 2004 17:58

カレンダーを横一列にしたために曜日が分からなくなり、色をつける方法がないかと探していてここを見つけました。
こりゃ望みどおりのものだと思ったのですが、モジュールが入っていないようで使えませんでした。
このモジュールを使わなくても良いような方法はありませんでしょうか?

Posted by: 半兵衛 at September 22, 2004 22:36

このプラグインは以下の Perl モジュールを MTPath/lib にインストールすれば、もしかすると動くかも知れません。
Date::Japanese::Holiday
Test::More
Time::JulianDay
Date::Calc
Date::Simple
未確認です。

祝祭日を除いた土曜日と日曜日に色をつけるだけであれば、追加の Perl モジュールが不要なプラグインが比較的簡単に作れると思います。

Posted by: n at September 23, 2004 01:03

ご返事ありがとうございます。
CPANより落としてきた下記のものをlibに入れました。
Holiday.pm
More.pm
JulianDay.pm
Calc.pm
Simple.pm
しかしダメでした。
上に書いたやり方は間違ってますか?

Posted by: 半兵衛 at September 23, 2004 12:02

ディレクトリを作って入れてみて下さい。例えば、lib の下に Date ディレクトリを作り、その中に Calc.pm と Simple.pm を置きます。さらに Japanese ディレクトリを作って、その中に置きます。他のモジュールも同様です。以下のような構成になります。
lib/Date/Calc.pm
lib/Date/Simple.pm
lib/Date/Japanese/Holiday.pm
lib/Test/More.pm
lib/Time/JulianDay.pm
これでいかがでしょうか?

Posted by: n at September 23, 2004 15:45

お手数を掛け、すいません。
試してみたのですがダメでした。
http://f40.aaacafe.ne.jp/~hanbei/mt/test/
プラグインが動いていないようです。
(MTPaginate.plってのも動かせなかった)
力不足なのかサーバの問題なのか。。。分かりかねます。

Posted by: 半兵衛 at September 23, 2004 17:51

試して頂きありがとうございました。また何か情報がありましたら、教えてください。

Posted by: n at September 23, 2004 18:40

うっかり書き間違えてしまいました。モジュールを置くのは「lib」でなく「extlib」でした。
extlib/Date/Calc.pm
extlib/Date/Simple.pm
extlib/Date/Japanese/Holiday.pm
extlib/Test/More.pm
extlib/Time/JulianDay.pm

Posted by: n at September 24, 2004 09:56

その節は色々とお世話になりましたが、めでたくこのプラグインを使うことが出来ました。鯖の方が対応してくれました。
私のところはSTEPSERVERですが、ロリポップでも導入可能なようです。一応連絡までに

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


(必須, 表示されます)


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


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


Confirmation Code (必須)


Remember info (R)?