DynamicMTML解説(1)-MTPluginクラスとconfig.php

| コメント(0) | トラックバック(0)

DynamicMTMLは一言でいえば「静的なHTMLファイルの中のMTタグをダイナミックに処理する」ということになるでしょう(HTMLじゃなくてもXMLでもJavaScriptでも何でもいいわけですが)。確かにそのことによってスマートフォンに対する分岐なんかがMTタグで書けるようになったわけです。

ただ、それはDynamicMTMLの一面にすぎません。ただ、一度に紹介しきれないので何度かに分けてご紹介しようと思います。

MTPluginクラスとconfig.php

そうなんです。元々MTのダイナミックパブリッシングはSmartyの拡張なので、Smartyの作法に従って function.mthellomtworld.php みたいなファイルをタグの数だけ用意する必要があります。MTのphp/libディレクトリの下を覗いてみてください。いくつファイルありますか? 正直やってらんねーな、というほどのファイル数です(よくメンテしてるな、てか、よく書いたなこれ)。

DynamicMTMLにはMTPluginというクラスがあって、そいつを継承したクラスを作ることでこんな書き方ができるようになります。ファイルの位置は plugins/HelloWorld/php/config.php です。配列の形で指定するから、ひとつのファイルにまとめてタグを実装できます。案件で使う処理をまとめて書けるからメンテンスもしやすいですよね。

<?php
class HelloWorld extends MTPlugin {
    var $app;
    var $registry = array(
        'name' => 'HelloWorld',
        'tags' => array(
            'function'
                => array( 'helloworld'
                    => 'hdlr_helloworld' ),
        ),
    );
    function hdlr_helloworld($args, &$ctx) {
        return 'Hello MT World.';
    }
}
?>

MT使いの方ならこのコード、ピンとくると思うんですが、そう、Perlでの書き方と殆ど同じですよね。Perlのinit_registryと同じ指定方法です。

この例はテンプレートタグの書き方ですが「Perlと同じ書き方」ができるようにDynamicMTMLにはMT::Objectと'ほぼ'互換のORマッパやMTのタスク(run-periodic-tasksとほぼ同等のことがPHPでかけたり)や、静的ファイルの再構築をPHPで行う方法なんかも含まれています。

次回以降改めてご紹介しますが、僕にしては珍しく? ドキュメントも丁寧に書いているので、宜しければ参考にしてください。

トラックバック(0)

トラックバックURL: http://junnama.alfasado.net/cgi/mt/mt-tb.cgi/643

コメントする

Facebook

Twitter

このブログ記事について

このページは、Junnama Nodaが2011年12月14日 11:37に書いたブログ記事です。

ひとつ前のブログ記事は「自社戦略における「キラーパス」を熟考せよ。」です。

次のブログ記事は「Twitter、Facebookとブログ、mixi、Tumblrの違い。あるいはソーシャルメディア時代におけるマーケティングモデルの変化。」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 6.2.6