#access();
例えば、「test」という名前のプラグインを作成するならば、「test.inc.php」という名前のファイルをPukiWikiのプラグインフォルダに作成する。
ファイルは、適当な文字コード(通常はEUC)で保存する。
インラインプラグイン(「&test();」と書いて使用するもの)では、「plugin_プラグインの名前_inline」という名前の関数を作る。
testプラグインでは、「plugin_test_inline」となる。
この関数では、表示する文字列を返すようにする。例えば、「&test();」で「こんにちは」と表示されるようにするには、次のようにする。
<?php function plugin_test_inline() { return 'こんにちは'; } ?>
■プラグイン実行結果 [#d4a50ab1]
&test();
ここで返す文字列はそのまま出力されるので、注意が必要(つまり、HTMLタグなども有効になる)。
そのまま出力するのが危険な場合は、htmlspecialchars関数などで変換しておく。
ブロックプラグイン(「#test()」と一行に書いて使用するもの)では、「plugin_プラグインの名前_convert」という名前の関数を作る。
testプラグインでは、「plugin_test_convert」となる。
この関数では、表示する文字列を返すようにする。例えば、「#test()」で「こんにちは」と表示されるようにするには、次のようにする。
<?php function plugin_test1_convert() { return 'こんにちは'; } ?>
■プラグイン実行結果 [#d4a50ab1]
#test1();
コマンドプラグイン(「./?plugin=test」のようなURLを呼び出して使用するもの)では、「plugin_プラグインの名前_action」という名前の関数を作る。
testプラグインでは、「plugin_test_action」となる。
この関数では、ページのタイトルとページの内容が格納された配列を返す。ページのタイトルは「msg」、内容は「body」というキー名で格納する。
例えば、「./?plugin=test」でタイトルが「テスト」で、内容が「こんにちは」と表示されるようにするには、次のようにする。
<?php function plugin_test_action() { return array('msg'=>'テスト', 'body'=>'こんにちは'); } ?>
■プラグイン実行結果 [#d4a50ab1]
http://www.kisnet.or.jp/~kanou/index.php?plugin=test2
インラインやブロック型プラグインを呼び出す時に指定されたパラメータを取得するには、plugin_test_inlineやplugin_test_convert関数でfunc_get_args関数を呼び出す。
<?php function plugin_test3_convert() { //パラメータの数の確認 if (func_num_args() < 1) return 'パラメータの数が不正です。'; //パラメータの取得 $args = func_get_args(); //はじめのパラメータを表示 return htmlspecialchars($args[0]); } ?>
■プラグイン実行結果 [#d4a50ab1]
#test3(1);
#test3(0);
インラインプラグインの「{}」で囲まれた最後のパラメータは、WikiテキストからHTMLに変換されている。
この最後のパラメータは、指定されていなくてもfunc_get_args関数で返される配列の最後に格納されるため、array_pop関数でこの部分を取得できる。
<?php function plugin_test_inline() { //パラメータの取得 $args = func_get_args(); //{}で指定されたパラメータを取得 $lastparam = array_pop($args); return $lastparam; } ?>