MTDDC Meetup FUKUSHIMA行ってきました。やっぱり大阪まで戻るのは飛行機にするべきだった...
こんな感じのレポートにしてしまうと結局のところプラグインの話になってるように取られちゃうかもしれませんが、技術ネタは前半の少しだけであとはビジネスの話と思い出話(?)でした。とはいえビジネスの話は会場限定なので前半の話のおさらいを少し。ひとことで言えば、MTはもっとPHP使いにアピールしようよ or PHPerはMTのフレームワーク使ってマークアップとの分離、協業(分業)スタイルとか「デジタルコピーの使い回し」ができるような方法を考えようね、ってことです。
一応Perlのコードも動くようにしましたが、これはね...PHPプログラマに見て欲しいんだ(で、みんなもっとダイナミック使おう)。そう、MTはPerlプロラグマのもんじゃない。そしてMTMLはもっと自由なんだよ。
さて、前準備として、DynamicMTMLをインストールするかダイナミックパブリッシングを設定しておいてください。DynamicMTMLをインストールした方が絶対面白いんだけどね(こいつも公開した当時からいくつか進歩しているのでまたそのうち近々新しい版を公開します)。
ファンクションタグ : MTHelloWorld
最初のプラグインとして、Hello World! だけ出力するもの。会場でデモしたやつです。モディファイアの渡し方のサンプル的に worldモディファイアを追加しています。つまり、
<MTHelloWorld world="Movable Type">
Hello Movable Type!
を出力します。
モディファイア : addstring
<MTHelloWorld world="Movable Type" addstring="でいいじゃん!">
Hello Movable Type!でいいじゃん!
を出力します。つなげてるだけですけどね...
ブロックタグ:MTQueryLoop
ブロックタグはちょっとややこしいので、DBにアクセスするサンプルでなく簡単なサンプルを。
example.html?param[]=foo¶m[]=bar¶m[]=buz
のようにアクセスした時に、
<MTQueryLoop key="param" glue=",">
<mt:var name="param" escape="html">
</MTQueryLoop>
foo,bar,buz
と出力されます。まぁこの「glue」ってのがWordpress的なので、MTっぽく書くことも出来るようにしてあります(ユーザーが指定可能な値を動的に出力するときはescape="html"を忘れずに!)。
<MTQueryLoop key="param">
<mt:if name="__first__"><ul></mt:if>
<li class="<mt:if name="__odd__">odd<mt:else>even</mt:else></mt:if>"><mt:var name="param" escape="html"></li>
<mt:if name="__last__"></ul></mt:if>
</MTQueryLoop>
ファンクションタグ:MTQuery
MTQueryLoopのパラメタ1つバージョン
<MTQuery key="param" escape="html">
example.html?param=foo
のようにアクセスすると foo を出力します。
ファンクションタグ:MTRand
<MTRand min="1" max="10">
で、1から10までの乱数を返します。
会場でやったデモでは以下のようなテンプレートで最近のブログ記事10件から1件ランダムに出力するもでしたね。
<MTRand min="1" max="10" setvar="rand">
<MTEntries limit="1" offset="$rand">
<MTEntryTitle escape="html">
</MTEntries>
* そういえば、昨日で会社7周年。懇親会で「来週くらい」とか言ってて「覚えてないのかよ!」と思わず自分でツッコミ入れてしまいました。写真はウチの子が小遣いで買って来てくれたクラシックラガー(ありがとー)。
