「WordPressで学ぶPHP(3)関数編」を発売しました。
本書は「WordPressで学ぶPHP(1)変数・制御構造編」「WordPressで学ぶPHP(2)データ構造(配列・オブジェクト)編」の続編にあたり、PHP組み込みの関数や、独自の関数を作る方法などを解説します。
Kindle本で、定価400円です。
PerlModuleプラグイン
Movable Typeで、テンプレート内でちょっとしたプログラムを実行したい場合は、結構あります。
Brad Choate氏が開発したPerlScriptプラグインを使えば、テンプレート内にPerlのプログラムを書くことができます。
ただ、他の人に配布するテンプレートの場合、テンプレート内にプログラムを直接に書いてあると、そのプログラムを書き換えられて、予想外のことが起きてしまう可能性があります。
そこで、プログラムをファイル(Perlのモジュール)から読み込んで実行するプラグインを作りました。
「テンプレート内でちょっとしたプログラムを使いたいが、プラグイン化するほどでもない」といった時や、「プラグインにする前のプロトタイプを作りたい」といった時に便利だと思います。
1.インストール
プラグインは以下からダウンロードすることができます。
ダウンロードしたZipファイルを解凍すると、「PerlModule」というフォルダができます。
このフォルダを、Movable Typeの「plugins」フォルダにアップロードします。
2.MTPerlModuleタグ
このプラグインをインストールすると、「MTPerlModule」というファンクションタグが追加されます。
以下のように、実行するPerlのモジュール名と、その中のサブルーチン名を指定すると、そのサブルーチンが実行されます。
そして、サブルーチンの戻り値がテンプレートに出力されます。
<$mt:PerlModule module="モジュール名" sub="サブルーチン名"$>
呼び出すサブルーチンには、パラメータとして「$ctx」と「$args」が渡されます。
$ctxはMTのコンテキストで、$argsはMTPerlModuleタグのモディファイアを指すハッシュリファレンスです。
$ctxと$argsの詳細については、CHEEBOWさんの「Movable Typeプラグイン開発入門」や、拙著の「Movable Type Developer's Guide Volume 1」を参照してください。
なお、このプラグインは、内部的には以下のような処理を行うだけです。
reqiure モジュール名; モジュール名::サブルーチン名($ctx, $args);
また、モジュールのファイルは、上の処理で読み込めるディレクトリに入れておきます。
mt-check.cgiを実行すると、Movable Typeの実行時にライブラリをインクルードするパスを調べることができます。
3.サンプル
モジュールのサンプルとして、「lib」→「PerlModule」ディレクトリに「Sample.pm」というファイルを入れてあります。
具体的なモジュールの書き方は、Sample.pmを参照してください。
以下の3つのサブルーチンを入れてあります。
3-1.hello
「Hello, World」と出力するだけです。
テンプレートに以下のように書くと、このサブルーチンを実行することができます。
<MTPerlModule module="PerlModule::Sample" sub="hello">
3-2.random
乱数を出力します。
テンプレートに以下のように書くと、このサブルーチンを実行することができます。
<MTPerlModule module="PerlModule::Sample" sub="random">
デフォルトでは、0以上100未満の乱数(小数点以下を含む)を出力します。
「min="○○"」と「max="●●"」のモディファイアを指定すると、○○以上●●未満の乱数を出力することができます。
また、「int="1"」のモディファイアを指定すると、乱数の小数点以下を切り捨てます。
例えば、以下のようにすると、1以上10未満の整数の乱数を出力することができます。
<MTPerlModule module="PerlModule::Sample" sub="random" min="1" max="10" int="1">
3-3.entry_length
ブログ記事の長さ(バイト数)を求めます。
MTEntry系のタグを使える場所で、以下のように書きます。
<MTPerlModule module="PerlModule::Sample" sub="entry_length">