MT4.1:プラグイン作成におけるDBへのフィールド追加について(プラグイン設定編)
ではプラグインの設定系のデータをDBへ追加する、取り出すには。これの書き方とか、チェックの仕方についてメモ。先にあげた3つのサンプルとは、ちょっと違う。
プラグインデータを追加する
こういうコードがあったとする。
my $plugin = MT::Plugin::AddField->new({
id => 'AddField',
key => 'add_field',
name => 'AddField',
version => $VERSION,
description => '<MT_TRANS phrase=\'This Is AddField Sample(MT4LP5 Book)\'>',
blog_config_template => \&_blog_config_template,
settings => new MT::PluginSettings([
['add_field_label',{ Default => 'NewField' }],
]),
schema_version => 0.02,
});
MT->add_plugin($plugin);
sub init_registry
{
my $plugin = shift;
$plugin->registry({
object_types => {
'entry' => {
'add_field' => 'string(255)',
},
},
callbacks => {
'MT::App::CMS::template_param.edit_entry' => \&_param_transformer,
},
tags => {
function => {
'AddField' => sub{&_hdlr_add_field;},
},
},
});
}
sub _blog_config_template {
my $tmpl = <<'EOT';
<mtapp:setting id="add_field_label" label="AddField label:">
<input type="text" name="add_field_label" id="add_field_label" value="<mt:var name="add_field_label" escape="html">" />
</mtapp:setting>
EOT
}
sub add_field_label {
my $plugin = shift;
my ($blog_id) = @_;
my %plugin_param;
$plugin->load_config(\%plugin_param, 'blog:'.$blog_id);
my $key = $plugin_param{add_field_label};
$key;
}
データの追加は以下の箇所。phpMyAdminで確認すると、mt_plugindataテーブルへ、plugindata_pluginという既存フィールドへデータ(レコード)が追加される。プラグインの設定画面ページなどからこのフィールドへデータを書き込むと、プラグイン毎(?)毎に個別のレコードが生成される。型はvarchar(50)のようだ。データを見るほうほうがわかんなかった。
blog_config_template => \&_blog_config_template,
settings => new MT::PluginSettings([
['add_field_label',{ Default => 'NewField' }],
]),
データの取り出し方は以下の箇所。
sub add_field_label {
my $plugin = shift;
my ($blog_id) = @_;
my %plugin_param;
$plugin->load_config(\%plugin_param, 'blog:'.$blog_id);
my $key = $plugin_param{add_field_label};
$key;
}
詳しい仕様は、いまのとこはっきりとしない。ちなみにこれを見つけるまでプラグイン試作で大ハマリした。
- カテゴリ:215プラグイン関係
トラックバック(0)
このブログ記事を参照しているブログ一覧: MT4.1:プラグイン作成におけるDBへのフィールド追加について(プラグイン設定編)
このブログ記事に対するトラックバックURL:
- Categories
- Entries
-
- Feed情報の無いサイトの更新日時を得るプラグイン(2)
- Feed情報の無いサイトの更新日時を得るプラグイン
- MT4.2:JPEGファイルのEXIF情報を取得するプラグイン(Ver0.6)
- EXIF情報を取得するプラグインの進行状況
- MT4.2:JPEGファイルのEXIF情報を取得するプラグイン(Ver0.5)
- MT4.2:JPEGファイルのEXIF情報を取得するプラグイン(Ver0.4)
- memo:perlでプラグイン Image::ExifとImage::Info
- MT4.2:JPEGファイルのEXIF情報を取得するプラグイン(Ver0.3)
- MT4.2:JPEGファイルのEXIF情報を取得するプラグイン(Ver0.2)
- MT4.2:JPEGファイルのEXIF情報を取得するプラグイン(GPS Ready)
- MT4:エントリのURLをQRコードで自動生成する
- MT4.2:QRコード画像を生成するプラグイン(改)
- 嵌りメモ(perlのxampp環境でのファイル吐き出し実験)
- MT4.2:QRコード画像を生成するプラグイン
- MT4.2:JPEGファイルのEXIF情報を取得するプラグイン(失敗)
- 管理画面を拡張する(メニューとメソッド追加)
- MT4.1:追加したファンクションタグのみへモデファイア追加
- MT4.1:エントリの既存DBへアクセスしてデータ取得
- MT4.1:MTの計算機能を拡張するプラグイン(CalcExp)開発の話
- MT4.1:MTの計算機能を拡張するプラグイン(CalcExp)配布
- MT4.1:営業日(休日)をイッパツで表現するカレンダープラグイン(改)
- MT4.1:プラグイン作成におけるDBへのフィールド追加について(プラグイン設定編)
- MT4.1:プラグイン作成におけるDBへのフィールド追加について(ブログ毎編)
- MT4.1:プラグイン作成におけるDBへのフィールド追加について(カテゴリ編)
- MT4.1:プラグイン作成におけるDBへのフィールド追加について(エントリ編)
- MT4.1:カテゴリの並べ替え(オリジナルプラグイン+ハッシュ変数)
- サンプルプラグインを手入力した(AddField)
- MT4.1:営業日(休日)をイッパツで表現するカレンダープラグイン
- サンプルプラグインを手入力した(RandomEntry)
- 最小単位のプラグインを生成するサンプル(ファンクション、ブロック、モデファイア、コールバック)
コメントする