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,
  • xxx-fixes contains the next minor release source code,
  • xxx-dev contains the next major release source-code,

The xxx-dev branch is where new features are added. This code is reputed as non stable.

The xxx-fixes branches is where bugs are fixed. 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