www.movabletype.orgの開発者向けドキュメント「Extending Existing Object Types」を見ながらMT::Entryでも拡張して新たなプラグインを作成してみようかなどと思っていたとき。
そこに書いてある例文のように書いてみてもどうもエラーになる(管理画面のシステムメニュー→プラグインで作成中のプラグインが利用不可になる)。
sub init_registry {
my $plugin = shift;
$plugin->registry({
object_types => {
'entry' => {
rating => integer,
},
},
});
}
ここんとこ。
書いてみたコードは例文とはちょっと違ったので何かミスタイプでもあったかなあ、と定石どおり自分を疑って「まずは例文通りに書いてみよう」。
えー。例文通り書いても利用不可のままですよ?
あれこれためつ眇めつしながら悩むこと半日、せっかくPronet会員なんだから、ということでSix Apartさんに助けを求めてみた。
帰ってきた答えが
「例文が間違っていました、すみません。連想配列なのでintegerの部分をクオートで囲ってください」
ああ……そうね、確かにplugin/(plugin_name)/lib/MT/(plugin_name).pmに書く構文だとそうだね。'hoge' => 'integer'とか書きますね。
__PACKAGE__->install_properties({
column_defs => {
'id' => 'integer',
}
});
こんな感じで。
perlをよく知らないために起こったちょっとした悲劇ですね。
http://blog.flatbit.co.jp/btlog/mt-tb.cgi/101
Comments
まだコメントはありません。よろしければコメントをどうぞ。
Post Your Comment