元フリーエンジニアライフ

Ruby on Rails とか MovableType とかAWSやってるフリーランスウェブエンジニアの記録でした。現在は法人成りしてIT社長。

プラグイン設定の入力チェックを行う方法メモ

必要になったので調べてみたメモ。

save_config_filterコールバックを使う。

config.yaml

key: hoge
settings:
    required_setting:
        default: ""
callbacks:
    save_config_filter.hoge: $hoge::Hoge::Plugin::_cb_save_config_filter

Hoge/Plugin.pm

sub _cb_save_config_filter {
    my ( $cb, $plugin, $data, $scope ) = @_;
    my $app = MT->instance;
    unless ( $data->{ required_setting } ) {
        return $plugin->error( $app->translate( 'Please enter some value for required \'[_1]\' field.', 'required_setting' ) );
    }

    return 1;
}

20130617112814.png