ユーザ用ツール

サイト用ツール


mtweatherjp_を導入する_mt3.2編

MTWeatherJPを導入する(MT3.2編)

修正が必要な点について

文字コード判定

MTWeatherJPは、MT::ConfigMgrから自動的に利用している文字コードを取得するが、3.2より前と3.2以降とで、返される文字列が微妙に異なっている。具体的には、どうもすべからくlower caseで返るようなのだ。従って、EUC-JPやShift_JIS、ISO-2022-JPやUTF-8を期待している、MTWeatherJPは、マッチングに失敗して、全てを utf-8だとみなして処理する。

偶然、utf-8を文字コードセットとして利用している場合には問題にはならないが、そうではない場合には次のように、MTWeatherJP.plを修正する。

オリジナルはこのようであるのを、

371: my $cfg = MT::ConfigMgr->instance;
372: $args->{ie} = {'Shift_JIS' =>'sjis',
373:                'ISO-2022-JP' =>'jis',
374:                'EUC-JP' => 'euc',
375:                'UTF-8' =>'utf8'}->{$cfg->PublishCharset} || 'utf8'

以下のように修正する。

371: my $cfg = MT::ConfigMgr->instance;
372: $args->{ie} = {'SHIFT_JIS' =>'sjis',
373:                'ISO-2022-JP' =>'jis',
374:                'EUC-JP' => 'euc',
375:                'UTF-8' =>'utf8'}->{uc($cfg->PublishCharset)} || 'utf8'

マッチングを全て大文字で取るようにすることで、MT3.1x以前とMT3.2以降のどちらでも動くようにしてあるつもりである。

MovableTypeに関してへ戻る。

mtweatherjp_を導入する_mt3.2編.txt · 最終更新: 2015/04/10 17:27 by 127.0.0.1