Movable Type/第11回MTプラグイン勉強会 - MT-Appのリファレンスを精読する(2) http://www.ark-web.jp/sandbox/wiki/1122.html
Movable Type/第11回MTプラグイン勉強会 - MT-Appのリファレンスを精読する(2)
第10回はMT::Appクラスのリファレンス精読の続きを行います。
動画(Ustream) †
勉強会の模様をアップしました。
Ustreamのチャンネルはこちら。
http://www.ustream.tv/channel/mt%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E5%8B%89%E5%BC%B7%E4%BC%9A
ご感想・ご質問など †
ご感想、ご質問などあればお気軽にどうぞ。頂けるととても励みになります。
ネタ †
日時 †
- 2008/08/01(金) 10:30〜11:00
METHODS †
以下、リファレンスを眺めつつ、主要なものだけ時間をとって解説。
session、start_session †
セッションを次のように使うことができる。
# セッションの発行 $app->start_session; $app->session('color', 'Red'); # セッションに保存した値の取得 my $color = $app->session('color'); print $color; # Redが出力される
current_magic、validate_magic、make_magic_token †
リクエストが正規のものであることを保障するために、トークンを利用できる。
テンプレート内に<mt:var name="MAGIC_TOKEN">を埋め込むことで、カレントのトークンを埋め込むことができる。
<form action="<mt:var name="SCRIPT_URL">?__mode=confirm_magic" method="post"> <input type="text" name="magic_token" value="<mt:var name="MAGIC_TOKEN">" /> <input type="submit" value="Magic Send"/> </form>
または、スクリプト内で$app->current_magicでカレントトークンを取得できる。
バリデーションはリクエストを受け付けた先で、$app->validate_magicをコールする。
if ( $app->validate_magic ) { return 'valid magic is posted.'; } else { return 'Error: invalid magic is posted.'; }
$app->make_magic_tokenで新しいトークンを作ることもできる(ただし、トークンをつくり出すだけで、カレントトークンにはセットされないので、sessionなどを利用して独自に保存、バリデーションする必要がある。
call_return、add_return_arg、uri、uri_params †
$app->call_returnと$app->add_return_argを使って以下のように特定modeへのリダイレクトが可能。
# $app->add_return_argを使って__mode=inject_magicにリダイレクト $app->add_return_arg('__mode' => 'inject_magic'); $app->call_return;
$app->add_return_argには複数のパラメータを渡すことができる。
$app->add_return_arg('__mode' => 'inject_magic', some_flag => 1); # __mode=inject_magic&some_flag=1にリダイレクトされる
$app->redirectと$app->uri(または$app->uri_params)を使って以下のようにすることもできる。
$app->redirect( $app->uri( 'mode' => 'inject_magic', 'args' => { 'some_flag' => 1 }, ) );
STANDARD APPLICATION TEMPLATE PARAMETERS †
MT::App STANDARD APPLICATION TEMPLATE PARAMETERS
を一通り読む。
(もしかしたらやるかも) †
次回予定 †
次回はMT::App::CMS、MT::Pluginのリファレンスを読むことを予定しています。
tag: Movable Type、MT、MT、MTPlugin、勉強会