6.0.0-git
2024-05-01

Diff for Doc/Dev/FilesystemH3 between 3 and 4

+ Filesystem structure of a Horde application



Each Horde application has a common filesystem structure. This helps organizing the several components of the application and simplifies working with unknown applications.



These are the directories available in every Horde application:

||~ Directory ||~ Content ||

|| / || Base directory with the controller scripts called by the browser ||

|| config/ || Configuration files ||

|| docs/ || Administrator documentation ||

|| lib/ || Application-specific library files ||

|| locale/ || Compiled translations and help files ||

|| po/ || Translations ||

|| scripts/ || CLI scripts for setup and maintenance ||

|| scripts/sql/ || SQL scripts for setup ||

|| scripts/upgrades/ || CLI and SQL scripts for upgrades ||

|| templates/ || Template files ||

|| themes/ || Base stylesheet and theme directories ||

|| themes/graphics/ || Icons ||



Usually there are more directories, depending on the application:

* If there are many controller scripts for an application, they may be grouped into directories under the base directory.

* The {{lib/}} directory has many levels of subdirectories. See ((Doc/Dev/Framework)) for details.

* The {{locale/}} directory has a subdirectory for each locale, e.g. {{locale/de_DE/}}. These subdirectories contain the translated help file {{help.xml}} and the directory {{LC_MESSAGES/}} which contains the actual, compiled translation, e.g. {{imp.mo}}.

* The {{scripts/}} directory may contain other directories for special purposes, e.g. {{ldap/}}.

* The {{templates/}} directory groups all templates for a single controller script into one subdirectory. All templates for a script called {{list.php}} are inside {{templates/list/}} for example.

** Each ((((Doc/Dev/Themes))|theme))((Doc/Dev/Themes|theme)) has a subdirectory, e.g. {{themes/bluewhite/}}; if a theme provides its own icon set, the icons are inside a {{graphics/}} subdirectory, e.g. {{themes/bluewhite/graphics/}}.

* Some applications have sub-sets of their icons grouped into subdirectories, e.g. {{themes/graphics/flags/}}.