There are two structures for the files of a DokuWiki plugin class. The structure chosen determines the name for the plugin class(es).
<dokuwiki>/lib/plugins/<plugin name>/<plugin type>.php <plugin type>_plugin_<plugin name>
e.g. file class
<dokuwiki>/lib/plugins/acl/admin.php => admin_plugin_acl
<dokuwiki>/lib/plugins/<plugin name>/<plugin type>/<filename>.php <plugin_type>_plugin_<plugin name>_<filename>,
e.g. file type class
<dokuwiki>/lib/plugins/code/syntax/code.php => syntax_plugin_code_code
<dokuwiki>/lib/plugins/code/syntax/file.php => syntax_plugin_code_file
Note that an _ (underscore) is a reserved character and cannot be use in the <plugin name>.
A plugin may contain several different plugins types as well as several different plugin classes of each type.
In addition, a plugin can (optionally) take advantage of other built-in facilities to have its styles, JavaScript, localisation, and configuration included in DokuWiki.
All paths and files are relative to the plugin root directory.
<dokuwiki>/lib/plugins/<pluginname>/style.css – CSS styles for the pluginscript.js – JavaScript used by the pluginlang/<language>/lang.php – English language strings (accessible via $this→getLang())lang/<language>/settings.php – localised strings used in the configuration managerlang/<language>/<filename>.txt – localised text including DokuWiki markup (accessible via $this→locale_xhml())conf/default.php – default settings (accessible via $this→getConf(), local settings are added to DokuWiki's global <dokuwiki>/conf/local.php)DokuWiki supports a special include syntax which can be used to source other files in a JavaScript file.
The CSS should be merged into one file.