DokuWiki

It's better when it's simple

ユーザ用ツール

サイト用ツール


ja:devel:configuration

構成設定

DokuWiki は、プラグインテンプレートを高度に設定可能にすることで、高い柔軟性をもって書くことができます。

デフォルト設定

プラグインやテンプレートを設定可能にするには、デフォルト設定を保持する lib/plugins/<プラグイン>/conf/default.php と、後述する構成設定メタデータ設定マネージャーがオプションを操作・表示するために使用されます)を保持する lib/plugins/<プラグイン>/conf/metadata.php を用意する必要があります1)

$conf[<setting>] = <value>;

構成設定メタデータ

lib/plugins/<あなたのプラグイン>/conf/default.php のすべての設定ごとに、lib/plugins/<あなたのプラグイン>/conf/metadata.php$meta[<setting>] の値が定義されているべきです2):

$meta[<setting>] = array(<setting class>, <param name> => <param value>);

設定クラス(下記参照)にパラメータがない場合は、単に次のようになります:

$meta[<setting>] = array(<setting class>);

例:

$meta['_basic']     = array('fieldset');
$meta['title']      = array('string');
$meta['lang']       = array('dirchoice','_dir' => DOKU_INC.'inc/lang/');
$meta['dmode']      = array('numeric','_pattern' => '/0[0-7]{3,4}/'); // 8進数のみ設定可能
$meta['allowdebug'] = array('onoff');
$meta['passcrypt']  = array('multichoice','_choices' => array('smd5','md5','sha1','ssha','crypt','mysql','my411'));

クラス

'' デフォルトのクラス('setting')、テキストエリア、最低限の入力検証、引用符つきで設定を出力
'string' 1行のテキストの入力、最低限の入力検証、引用符つきで設定を出力
'numeric' テキスト入力、数字と算術演算子を許可、引用符なしで設定を出力
'onoff' チェックボックス入力、0 か 1 を出力
'multichoice' 選択入力(単一選択)、引用符つきで設定を出力、_choices パラメータ必須
'email' テキスト入力、入力はメールアドレスの形式であること、引用符つきで設定を出力
'richemail' テキスト入力、入力はメールアドレスのヘッダー形式であること(テキスト部分と置換パターンを含んでもよい)、引用符つきで設定を出力
'password' パスワード入力、と最低限の入力検証、引用符つきのプレーンテキストで設定を出力
'dirchoice' multichoice とほぼ同様で、_dir パラメータ(必須)で指定された位置にあるフォルダを選択肢として選択
'multicheckbox' 各選択肢のチェックボックスと “その他” の string 入力、設定ファイルの設定はコンマで区切られたチェック用選択肢のリスト
'fieldset' 構成設定のグループ化に使用、これ自体は設定ではない。言語ファイルでこれを明確にするため、このタイプのキーは '_' で開始すべき
'authtype' inc/auth にある authtype.class.php のパターンにマッチするクラス名に基づいて、利用可能な認証方式の選択肢を生成

パラメータ

'_pattern' 正規表現の文字列。入力が受理される前にこのパターンで検査されます。
onoff、multichoice、dirchoice では無視され、それ以外のすべてのクラスで任意
'_choices' 選択肢の配列。選択ボックスを表示するために使用。選択肢は、<設定名>_o_<選択番号> で示される現地語文字列が存在すればそれに置換されます。
'multichoice' と 'multicheckbox' のクラスで必須で、それ以外では無視
'_dir' 選択リストを表示するのに使用されるディレクトリ位置。
'dirchoice' クラスで必須で、それ以外で無視
'_combine' complimentary output setting values which can be combined into a single display checkbox (←実際の動作を見ないとよく意味がとれない)
'multicheckbox' では任意で、それ以外のクラスで無視

設定値へのアクセス

プラグイン内では、$this->getConf('<setting>') メソッドを利用して設定値にアクセスできます。テンプレート内では、$tpl_getConf('<setting>') が利用できます。

ラベル

lib/plugins/<あなたのプラグイン>/conf/default.php 内のすべての設定について、lib/plugins/<あなたのプラグイン>/lang/en/settings.php 内で、$lang[<setting>] の値が定義され得ます。この値は、設定マネージャー内で設定のラベルとして表示されます。ラベルファイルがないか、その設定用の値が含まれていない場合、設定マネージャーは代わりに “plugin <plugin name> <setting>” をラベルとして表示します。他の言語についても、settings.php ファイルを作成することができます。これは、テンプレートについても同様です(さらなる詳細は現地化を参照)。

1)
テンプレートの場合は lib/tpl/<テンプレート>/conf/default.php などに置き換えて解釈してください。
2)
テンプレートもまったく同様で、lib/tpl/<あなたのテンプレート>/conf/default.phplib/tpl/<あなたのテンプレート>/conf/metadata.php です。
ja/devel/configuration.txt · 最終更新: 2008-11-25 15:46 by 61.214.58.166

特に明示されていない限り、本Wikiの内容は次のライセンスに従います: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki