DokuWiki pluginクラスには、2つのファイル構造があります。これらの構造はプラグインのクラス名で決定されます。
<dokuwiki>/lib/plugins/<plugin name>/<plugin type>.php <プラグイン型>_plugin_<プラグイン名>となります。 e.g. ファイル クラス
<dokuwiki>/lib/plugins/acl/admin.php => admin_plugin_acl
<dokuwiki>/lib/plugins/<プラグイン名>/<プラグイン型>/<ファイル名>.php <プラグイン型>_plugin_<プラグイン名>_<ファイル名>となります。 e.g. ファイル プラグイン型 クラス
<dokuwiki>/lib/plugins/code/syntax/code.php => syntax_plugin_code_code
<dokuwiki>/lib/plugins/code/syntax/file.php => syntax_plugin_code_file
下線(アンダースコア、_)がプラグイン名の解釈に用いられていますから、プラグインの名前には下線を使ってはいけません。
プラグインは複数のプラグイン型を含んでいても構いません。また、それと同様に、複数の異なるプラグインクラスを含んでいても構いません。
加えて、プラグインはDokuWikiに組み込まれた共通したメカニズム(スタイルシートやJavaScriptの圧縮送出・多言語化・設定管理フォームの生成)を簡単に利用できます。
すべてのパスやファイルはプラグインルートディレクトリからの相対パスです。
<dokuwiki>/lib/plugins/<プラグイン名>/style.css – CSS プラグインのスタイルシートprint.css – print CSS プラグインのprintメディア用スタイルシートscript.js – JavaScript プラグインで使用されるJavaScriptコードlang/<言語>/lang.php – 各言語用の文字列 (プラグイン内で$this→getLang()で取得)lang/<言語>/settings.php – configuration managerで使う各言語用の文字列lang/<言語>/<filename>.txt – 各言語用のDokuWiki構文のテキストファイル (プラグイン内で $this→locale_xhml() で取得できる。)conf/default.php – default settings ($this→getConf()で取得できる。設定が変更されると、DokuWikiのグローバル設定、<dokuwiki>/conf/local.phpに自動的に追加される。)conf/metadata.php – configuration metadata はconfiguration managerで使用される設定で、設定値の種類を指定する。これにより、管理画面でのテキストボックス/チェックボックス/プルダウンメニューなどのフォームが自動的に選択されて生成される。最初に新しいプラグインのファイル構造を作るには、DokuWiki Plugin Wizardというウェブサイトを使うことをおすすめします。
そのために、DokuWikiは特別なinclude syntaxという構文を用意しています。コメント文を使うことによって他のソースファイルを指定して組み込むことができます。
CSSファイルは一つにまとめて下さい。
プラグインはpluginsディレクトリに配置するだけでインストールされますが、特定のプラグインを不使用に(disable)することもできます。そのためには、不使用にしたいプラグインのディレクトリ内にdisabledという空のファイル1)を作成して下さい。