« Windows Live Writerで投稿すると9時間ずれる件について(恥編) | メイン | ラシェットブランシュ湘南 »

Windows Live Writer で投稿すると9時間ずれる件について(ファイナル!)

Windows Live Writer で Movable Type に投稿すると時刻がずれるらしい
Windows Live Writerで時間が9時間ずれる件について(続編)
Windows Live Writerで時間が9時間ずれる件について(続々編)
Windows Live Writerで投稿すると9時間ずれる件について(恥編)

とお送りしてきたMovable Typeと格闘シリーズ。紆余曲折ありましたが、とうとう原因を突き止めました。もうこうなったらプロの意地というか、原因突き止めるまでは諦めへんで!って感じで、ここんとこ、夜も朝もMovable Typeのスクリプトと格闘。結局、最初はWindows Live Writerをかなり疑ってたけど、Movable Typeが悪かったっつーことで。

で、原因はココ。addons/Commercial.pack/lib/CustomFields/XMLRPCServer.pmの中、15行目。

sub APIPostSave_entry {
    my $plugin = shift;
    my ($cb, $mt, $entry, $original) = @_;

ここをコメントアウトするだけ。こんな感じ。

sub APIPostSave_entry {
#    my $plugin = shift;
    my ($cb, $mt, $entry, $original) = @_;

結局、ここ、コールバック関数になってるようなんですが、引数をshiftしてしまってなんだかよくわからなくしてるんです。実体としては、その下の行に渡ってくるものだけなので、shiftが余計。$pluginも使ってないし、どこかからコピペしてきたのだろうか。。。これが原因で、下の方で$entryをsaveするんだけど、実体としては$originalをsaveしてしまって、そこにはblog_idがついてなくて、ブログの時差設定を読み込めずにmt-congif.cgiのTimeOffsetを使っていたというわけ。TimeOffsetを設定すればうまくいくってのも間違ってはなかったわけだが、根本原因はこちらでした。ちなみに、これはMT4.1のお話。他のバージョンではわかりません。

ちなみに、これ、Commercial.packってのに入ってるんですが、MTOSの4.2には入ってませんでした。なので起きなかった。あと、MySQLを使った場合は、今回のように投稿時にいきなりずれるのですが、SQLiteを使った場合には、投稿時はOKで、次を投稿すると前のが9時間ずれるなんてことになってました。これもよくわからないですが、上の修正で直りました。DBによって何か動作が違うんでしょうか。

再現条件をまとめるとこんな感じになるのかな。

  • MT4.1(or それに近いバージョンで)
  • Commercial.packのCustomFieldsが入っていて
  • XMLRPCのAPI、つまりWindows Live Writerなどを使っている

場合に、時間がずれることがある。対策は上の通り、1行コメントアウトするだけ。もしくはTimeOffsetを指定。

ちなみに、ダブル投稿で解決してた理由はよくわからないし、調べる気もないです。^^;

あー、今日はゆっくり眠れる。

と、この投稿がうまくいけばだけど。^^

(追記) やったぜ!成功!

トラックバック

このエントリーのトラックバックURL:
http://www.afropunx.jp/blog/mt-tb.cgi/514

この一覧は、次のエントリーを参照しています: Windows Live Writer で投稿すると9時間ずれる件について(ファイナル!):

» Windows Live Writerで投稿すると9時間ずれる件について(恥編) 送信元 Humming of Lunatics
あー、今朝はボーっとしてたみたい。 MovableTypeのバグみたいに書いた... [詳しくはこちら]

» Windows Live Writerで時間が9時間ずれる件について(続々編) 送信元 Humming of Lunatics
どうも昨日書いたTimeOffsetの件が気になって朝からまたいろいろ調べてみた... [詳しくはこちら]

» Windows Live Writerで時間が9時間ずれる件について(続編) 送信元 Humming of Lunatics
以前、「Windows Live Writer で Movable Type に... [詳しくはこちら]

» Movable Typeを4.21にアップデート 送信元 Humming of Lunatics
最近どうもブログの調子が悪い。Windows Live Writerからタイムア... [詳しくはこちら]

コメントを投稿

About

July 2, 2008 9:52 PMに投稿されたエントリーのページです。

ひとつ前の投稿は「Windows Live Writerで投稿すると9時間ずれる件について(恥編)」です。

次の投稿は「ラシェットブランシュ湘南」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

September 2008

  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30        

アーカイブ

タグ クラウド

Track Feed