Plugin folder organization
The directories in a FusionDirectory plugin look like this:
addons: used if the plugin put things in the addons menu category
admin: main dir for all plugins going into the admin menu category
config: configuration dir, used if the plugin need to store option in ldap
contrib: used to put all the contributed files like schema, docs, manpages etc..
openldap: Schemas for the openldap server
docs: Documentation how to use the plugin
html: used to put all the images or other public files
plugins
plugin_name
images: images which are not icons
themes
breezy
icons: icons to add to default breezy theme
48: sorted by size, for instance 48x48
apps: then by category, use apps for application icons
myapp.png: format should be png. This example file would be used as geticon.php?context=applications&icon=myapp
ihtml: used to put all the smarty template files
themes
breezy: smarty templates
locale: used for localization of the plugin
en: language iso code
fusiondirectory.po: message file
personal: used when plugin is to be used to manage user properties
includes: used for files available for inclusion for other plugins
addons, admin, config, personal
These directories should contain a subdirectory named as the plugin, or as an other plugin which we extend. For instance, argonaut plugin contains admin/systems/argonaut/class_argonautClient.inc
Installation of a plugin
For addons, admin, config, and personal folders, the content should go into <fd_dir>/plugins/<dir>/
For html, ihtml, include, the content should go into <fd_dir>/<dir>/
For contrib/openldap, the content should go into <ldap_schemas_dir>/fusiondirectory/
For contrib/etc, the content should go into /etc/fusiondirectory/<plugin_name>.
For contrib/doc, the content may go into <doc_dir>/fusiondirectory-plugin-<plugin_name>.
Special cases:
in html/themes/<theme_name>, svg folder may be ignored
content of locale goes into <fd_dir>/locale/plugins/<plugin_name>/locale/