CustomFields 1.22 を MT-3.33ja につっこむ

メモ

MTの古いバージョン時から利用してきた、カテゴリやエントリーなどの入力項目を編集できるCustomFieldsをMovableType-3.33ja につっこむまでのメモです。

1.
まず、エントリー投稿時には BigPAPI がMT-3.33に対応していなかったので利用不可にしておく。(利用可にしておくと、CustomFields 1.22と競合して、CustomFields 1.22の機能が一部表示されなかった)

2.
CustomFields 1.22をダウンロード。(名前とメールアドレスの登録が必要?)

3.
ファイルを展開し、中の mt-static 、 php 、 plugins フォルダをそれぞれMTのトップ階層に上書きする。


たぶん、設置はこれだけでいいはず。

※構築時にエラー
私の場合、構築時に下記のようなエラーが出た。
Can't call method "id" on an undefined value at [MT-CGI-PATH]/plugins/CustomFields/lib/CustomFields/Template/ContextHandlers.pm line 227.

んで、ContextHandlers.pmの227行目が下記。
elsif($type eq 'category'){ $obj = $ctx->stash('category'); $plugin = 'categories'; $key = 'category_'.$obj->id; }

ん~、これはバグなのか私の使い方が悪いのかしらんけど、とりあえずエラーの原因を追っかけてみた。
結果、 $ctx->stash('category') ってのがないらしい。
それじゃ困るので $ctx をダンプしてみたら、 $ctx->stash('archive_category') ってのがあるようだ。

下記のように修正してみる。
elsif($type eq 'category'){ $obj = $ctx->stash('archive_category'); $plugin = 'categories'; $key = 'category_'.$obj->id; }

正常に再構築できました。
よかった、よかった。
Name
Email
Your website or blog
Comment
Security code (CAPTCHA™)