拙著「個人投資家は低位株で儲けなさい」が発売されました。
株価が安い「低位株」に投資する方法を解説しています。
自由国民社刊で、定価1,512円(消費税込み)です。
BIGPAPI/Transformer両対応プラグインの作成
先日、Transformerプラグインの作成方法を紹介しましたが、当面の状況を考慮すると、BIGPAPIとTransformerの両対応にしておくとより良いと思われます。
Movable Type 3.3でのBIGPAPIとTransformerとの関係
Movable Type 3.3にも、BIGPAPIおよびBIGPAPI対応プラグインをインストールすることができ、動作もします。
ただし、BIGPAPIとTransformerは、いずれもテンプレートを読み込む処理を一部書き換えるものですので、共存することができません。
つまり、BIGPAPIをインストールしてオンにすると、Transformerにしか対応していないプラグインが動作しなくなります。
BIGPAPI/Transformerを両対応にしておく
今後はTransformer対応プラグインが増えていくと思いますが、当面はBIGPAPI対応プラグインの方が多いです。
そのため、MT3.3でもBIGPAPIを使いたいという方が多いと思われます。
そこで、管理画面を書き換えるプラグインを作る際には、当面はTransformerとBIGPAPIの両方に対応しておく方が良いでしょう。
テンプレート書き換えのサブルーチンをadd_callbackする際に、BIGPAPIとTransformerの両方を登録しておけば、BIGPAPIがオンならBIGPAPIで、そうでなければTransformerで動作するようになりました。
事例
先日ご紹介したプラグインの例を、BIGPAPIとTransformerの両方に対応させると、以下のリストのようになります。
package MT::Plugin::TransformerTest; use strict; use base qw( MT::Plugin ); require MT::Plugin; require MT; require MT::Log; # register plugin my $plugin = MT::Plugin::TransformerTest->new({ 'name' => 'TransformerTest', 'author_name' => 'H.Fujimoto', 'author_link' => 'http://www.h-fj.com/blog/', 'description' => 'Transformer plugin test.', 'version' => '1.01', }); MT->add_plugin($plugin); # register callback MT->add_callback('bigpapi::template::menu', 9, $plugin, \&edit_menu_template_bigpapi); MT->add_callback('MT::App::CMS::AppTemplateSource.menu', 9, $plugin, \&edit_menu_template_transformer); sub edit_menu_template_bigpapi { my $log = MT::Log->new; $log->message("TransformerTest : register by BIGPAPI"); $log->save; &edit_menu_template(@_); } sub edit_menu_template_transformer { my $log = MT::Log->new; $log->message("TransformerTest : register by Transformer"); $log->save; &edit_menu_template(@_); } sub edit_menu_template { my ($cb, $app, $template) = @_; my $blog_id = $app->{query}->param('blog_id'); my $entry_count = MT::Entry->count({ blog_id => $blog_id }); my $old = <<HERE; <p class="page-desc"><MT_TRANS phrase="Here is an overview of [_1]." params="<TMPL_VAR NAME=BLOG_NAME ESCAPE=HTML>"></p> HERE $old = quotemeta($old); my $new = <<HERE; <p class="page-desc"><MT_TRANS phrase="Here is an overview of [_1]." params="<TMPL_VAR NAME=BLOG_NAME ESCAPE=HTML>"></p> <p class="page-desc">Number of entries : $entry_count</p> HERE $$template =~ s/$old/$new/; } 1;
このプラグインをMTの「plugins」ディレクトリにアップロードしてインストールし、MTにログインすると、BIGPAPIのオン/オフに関わらず、プラグインが動作します。
また、BIGPAPIがオンならログに「TransformerTest : register by BIGPAPI」と記録されます。
一方、BIGPAPIがオフ(またはインストールされていない)なら、ログに「TransformerTest : register by Transformer」と記録されます。