Movable Type プラグインハンドラでのクエリーパラメータ取得方法
Movable Type プラグインのクエリーパラメータ取得方法です。単なる備忘録です。
例えば、フックポイントcms_pre_saveやcms_post_saveから起動されるハンドラメソッドhdlr_pre_saveやhdlr_post_saveで、起動URLのクエリーパラメータに設定されたブログIDを取得する場合は、次のようにします。
sub hdlr_pre_save {
my ($cb, $app, $obj, $orig_obj) = @_;
my $q = $app->param;
my $blog_id = $q->param('blog_id');
…後略…
次のコードも同様です。
sub hdlr_pre_save {
my ($cb, $app, $obj, $orig_obj) = @_;
my $blog_id = $app->param('blog_id');
…後略…
ちなみに、MT::App::paramの実装は次のようになっています。
MT::App::param
sub param {
my $app = shift;
return unless $app->{query};
if (@_) {
$app->{query}->param(@_);
}
else {
wantarray ? ( $app->{query}->param ) : $app->{query};
}
}
MT::App::paramを起動せず、次の方法でも取得可能です。
sub hdlr_pre_save {
my ($cb, $app, $obj, $orig_obj) = @_;
my $q = $app->{query};
my $blog_id = $q->param('blog_id');
…後略…
sub hdlr_pre_save {
my ($cb, $app, $obj, $orig_obj) = @_;
my $blog_id = $app->{query}->param('blog_id');
…後略…
$app(MT:App)にはblogメソッドが実装されているので、そこから取得することも可能です。
sub hdlr_pre_save {
my ($cb, $app, $obj, $orig_obj) = @_;
my $blog_id = $app->blog->id;
…後略…
MT::App::blogの実装は次のようになっています。
MT::App::blog
sub blog {
my $app = shift;
$app->{_blog} = shift if @_;
return $app->{_blog} if $app->{_blog};
return undef unless $app->{query};
my $blog_id = $app->param('blog_id');
if ($blog_id) {
require MT::Blog;
my $blog = MT::Blog->load($blog_id);
$app->{_blog} = $blog;
}
return $app->{_blog};
}
Posted by yujiro このページの先頭に戻る
- MTプラグインの重複配置は動作異常になる可能性があります
- 2014年にリリースしたMovable Type(MT)プラグイン一覧
- PageButeプラグインでcanonical属性を変更する「PageButeCanonicalChangerプラグイン」
- Movable Typeで作成したブログ記事をEvernoteにクリップする「ClipToEvernoteプラグイン」
- Movable Typeにインストールしたプラグインがプラグイン一覧に表示されない件について
- Movable Typeでアイテム画像を編集できる「Pixenateプラグイン」
- AssetExporter プラグイン v0.02
- Movable Type 5の記事編集画面に任意のボタンを追加する3つのプラグイン
- Action Streams プラグイン(Movable Type 5 対応)の利用方法:その3
- Movable Type用OAuth対応Twitter投稿プラグイン「PostTweet」
- Movable Type用OAuth対応Twitter投稿プラグイン「PostTwiOauth」
- Action Streams プラグイン(Movable Type 5 対応)の利用方法:その2
- Action Streams プラグイン(Movable Type 5 対応)の利用方法:その1
- Movable Type プラグイン一覧(MT5対応)
- Konjak プラグイン
トラックバックURL
コメントする
greeting