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, javascripts, 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 (accesible 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.