- 追加された行はこの色です。
- 削除された行はこの色です。
*プラグイン作成の基本 [#hc564ceb]
#contents
**プラグインスクリプトファイルの作成 [#wd083282]
例えば、「test」という名前のプラグインを作成するならば、「test.inc.php」という名前のファイルをPukiWikiのプラグインフォルダに作成する。ファイルは、適当な文字コード(通常はEUC)で保存する。
**インラインプラグインの作成 [#f2e9d749]
インラインプラグイン(「&test();」と書いて使用するもの)では、「plugin_プラグインの名前_inline」という名前の関数を作る。testプラグインでは、「plugin_test_inline」となる。
この関数では、表示する文字列を返すようにする。例えば、「&test();」で「こんにちは」と表示されるようにするには、次のようにする。
#code(php){{
<?php
function plugin_test_inline()
{
return 'こんにちは';
}
?>
}}
ここで返す文字列はそのまま出力されるので、注意が必要(つまり、HTMLタグなども有効になる)。そのまま出力するのが危険な場合は、htmlspecialchars関数などで変換しておく。
**ブロックプラグインの作成 [#tdb6769a]
ブロックプラグイン(「#test()」と一行に書いて使用するもの)では、「plugin_プラグインの名前_convert」という名前の関数を作る。testプラグインでは、「plugin_test_convert」となる。
この関数では、表示する文字列を返すようにする。例えば、「#test()」で「こんにちは」と表示されるようにするには、次のようにする。
#code(php){{
<?php
function plugin_test_convert()
{
return 'こんにちは';
}
?>
}}
インラインプラグインと同様、そのまま出力されるので、注意が必要。
**コマンドプラグイン [#lfb7c60f]
**コマンドプラグインの作成 [#lfb7c60f]
コマンドプラグイン(「./?plugin=test」のようなURLを呼び出して使用するもの)では、「plugin_プラグインの名前_action」という名前の関数を作る。testプラグインでは、「plugin_test_action」となる。
この関数では、ページのタイトルとページの内容が格納された配列を返す。ページのタイトルは「msg」、内容は「body」というキー名で格納する。例えば、「./?plugin=test」でタイトルが「テスト」で、内容が「こんにちは」と表示されるようにするには、次のようにする。
#code(php){{
<?php
function plugin_test_action()
{
return array('msg'=>'テスト', 'body'=>'こんにちは');
}
?>
}}
**指定されたパラメータを取得する [#rb154b89]
インラインやブロック型プラグインを呼び出す時に指定されたパラメータを取得するには、plugin_test_inlineやplugin_test_convert関数でfunc_get_args関数を呼び出す。
#code(php){{
<?php
function plugin_test_convert()
{
//パラメータの数の確認
if (func_num_args() < 1)
return 'パラメータの数が不正です。';
//パラメータの取得
$args = func_get_args();
//はじめのパラメータを表示
return htmlspecialchars($args[0]);
}
?>
}}
コマンドプラグインの場合は、POSTデータは$post、GETデータは$get、POST+GETデータは$varsという連想配列のグローバル変数に格納される。
**インラインプラグインの最後のパラメータについて [#m7449b6e]
インラインプラグインの「{}」で囲まれた最後のパラメータは、WikiテキストからHTMLに変換されている。この最後のパラメータは、指定されていなくてもfunc_get_args関数で返される配列の最後に格納されるため、array_pop関数でこの部分を取得できる。
#code(php){{
<?php
function plugin_test_inline()
{
//パラメータの取得
$args = func_get_args();
//{}で指定されたパラメータを取得
$lastparam = array_pop($args);
return $lastparam;
}
?>
}}
**始めに呼び出される関数 [#ta5161f7]
プラグインが呼び出された時、始めに「plugin_プラグイン名_init」という名前の関数が呼び出される。詳しくは、[[こちら>PukiWiki/Tips/プラグインの作成/グローバル変数を定義する]]。
//これより下は編集しないでください
#pageinfo([[:Category/PukiWiki]],2006-08-01 (火) 02:09:28,DOBON!,2006-08-01 (火) 02:09:28,DOBON!)
#pageinfo([[:Category/PukiWiki]],2006-08-01 (火) 02:09:28,DOBON!,2006-08-01 (火) 02:55:02,DOBON!)