Source Code management
FusionDirectory source code management is handled by GIT and hosted on GitHub.
There is two repositories :
In order to contribute to the source code, you will have to know a few things about Git and the development model we follow.
Branches
On the Git repository, you will find several existing branches:
master contains latest released official code,
dev contains the current code in development,
The dev branch is where new features are added. This code is reputed as non stable.
The master branch is the released code. This code is reputed as stable.
File Hierarchy System
Note
This lists current files and directories listed in the FusionDirectory core source code.
This is a brieve description of FusionDirectory core main folders and files:
.tx: Transifex configuration
contrib
apache
fusiondirectory-apache.conf: FusionDirectory apache configuration
bin
fusiondirectory-insert-schema: FusionDirectory console schema management tool
fusiondirectory-setup: FusionDirectory console management tool
docs
README: Global Readme
README.cnconfig: Readme about openldap and cn=config
README.ldap-migration: Readme about ldap migration issue when using FusionDirectory
UPGRADE: Full Documentation on how to upgrade from one version to another
images
favicon.png: FusionDirectory favicon in png
favicon.svg: FusionDirectory favicon in svg
Fusiondirectory-logo-noir.eps: FusionDirectory logo in Encapsulated Postscript
Fusiondirectory-logo.png: FusionDirectory logo in png
lighttpd
fusiondirectory-lighttpd.conf: FusionDirectory lighttpd configuration file
man
openldap : FusionDirectory core schema
smarty
plugins
block.render.php: FusionDirectory lighttpd configuration file
function.filePath.php: FusionDirectory lighttpd configuration file
function.iconPath.php: FusionDirectory lighttpd configuration file
function.msgPool.php: FusionDirectory lighttpd configuration file
fusiondirectory.conf: FusionDirectory configuration template
html
images: static images
include: static images
plugins: static images
themes: static images
*.css: themes css
icons: icons for the theme following free desktop specification
images: static images for this theme if needed (not recommended)
svg: icons in svg format
ihtml : smarty theme tpl folders
themes
breezy : official theme
legacy : old one for testing only
include : core FusionDirectory library and helpers
exporter: export to pdf and xls
password-methods: all password methods understod by FusionDirectory
select: all object specific select dialog and methods
simpleplugin: core FusionDirectory library
locale
ar: ISO code of the language
fusiondirectory.po: Gettext’s translations
…
plugins
addons
admin: administration plugins
config: configuration plugins
generic: base core plugins
personal : base personal plugins
.gitignore: Git ignore list
AUTHORS.txt: list of FusionDirectory authors
Changelog: Changes
COPYING: Licence
README.md: all about FusionDirectory :)
Note
This lists current files and directories that can be listed in the FusionDirectory plugin source code.
This is a brieve description of a FusionDirectory plugin folders and files:
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