ラベル MovableType の投稿を表示しています。 すべての投稿を表示
ラベル MovableType の投稿を表示しています。 すべての投稿を表示

2005年9月30日金曜日

Movable Type 3.2 日本語版の提供を開始

Movable Type 3.2 日本語版がリリースされたみたいですね。
落ち着いたら移行しよっと。

via: Six Apart - MovableType News: Movable Type 3.2 日本語版の提供を開始

2005年6月15日水曜日

Dreamweaver 拡張機能 for Movable Type 3

Six Apart Japan: マクロメディアとシックス・アパート、Dreamweaver拡張機能 for Movable Type 3を発表

MTのテンプレートカスタマイズが効率的に!タグリファレンスは便利そう。



2005年3月8日火曜日

MovableType with PostgreSQLのインストールでの注意点

MovableTypeのインストールでストレージにPostgreSQLを選択した場合、ある条件でmt-load.cgi実行時に以下のエラーがでました。
>

Insertion test failed on SQL error ERROR: value too long for type character varying(50)
<
上記エラーが発生した条件は以下のとおりです。
-MovableType - 3.151
-PostgreSQL - 7.3.5
-サイトの文字コードはUTF-8
-DBの文字コードがSQL_ASCII

エラーを回避するにはDBの文字コードをUNICODE(サイトの文字コードがEUCの場合はEUC_JP)で作り直せばOKです。
>

createdb -E UNICODE mt_database_name
<

作成したデータベースの文字コードは以下のコマンドで確認できます。
>

psql -l
<

PostgreSQLのVARCHAR型はバイト数でなく文字数で指定できるのでデータベースの文字コードをUNICODEにした場合はバイト数は50バイトを超えていても文字列として50文字以内であればインサートできるようです。








2005年1月4日火曜日

MT3.x+mod_perl環境でMTプラグインのロードに失敗するとエラーになる

結構前からなぜかmod_perl環境でMTが動かなくなってしまっていて、しょうがなくCGI環境で動かしていたんですが、どうにも遅くてやりきれないので、ちょっとMTのソースを追ってみました。

エラーの内容はこんな感じです。
>

Got an error: Can't call method "connection" on an undefined value at /path/to/mt/lib/MT/App.pm line 594.
<

App.pmの該当行ををみてみるとどうやら、apacheのリクエストオブジェクトが空のためエラーになっている模様。さらにソースを追ってみると、親クラスのMT.pmでのinitでこけていることが判明。そこでMT.pmにwarnを仕込んでデバッグしてみたところ、プラグインのロードに失敗した際に呼ばれるlogメソッドが原因だと判明しました。

MT.pmのinitメソッド内では、pluginのreiquireに失敗すると、$mt->logメソッドを呼び出すのですが、このlogメソッドはMT::App.pmで定義されたlogメソッドによりオーバーライドされています。
そのMT::App::logでは$mt->{apache}->connectionを呼び出しているのですが、$mt->{apache}はこの時点ではまだ生成されていないため、最初に書いたようなエラーがでていたのでした。

このエラーを回避し、プラグインのロードに失敗した際もMTが止まらないようにするためには、失敗した際に、$mt->logではなくMT::logを直接呼び出すように書き換えればOKだと思います。とりあえずパッチを書いてみました。

>

--- MT.pm.orig Tue Jan 4 05:27:34 2005
+++ MT.pm Tue Jan 4 05:27:42 2005
@@ -292,7 +292,7 @@
$plugin = $1;
eval { require $plugin };
if ($@) {
- $mt->log("Plugin error: $plugin $@");
+ MT::log("Plugin error: $plugin $@");
return 0;
}
return 1;
<