6.0.0-git
2024-12-02

Diff for Doc/Dev/Filesystem between 13 and 14

+ Filesystem structure of a Horde application

**##red|This information is valid for Horde 4 and later only. See ((Doc/Dev/FilesystemH3)) for Horde 3.##**

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 ||
|| app/ || Views and controllers for MVC style apps ||
|| bin/ || Binary and other standalone CLI scripts ||
|| config/ || Configuration files ||
|| docs/ || Administrator documentation ||
|| js/ || Javascript files ||
|| lib/ || Application-specific library files ||
|| locale/ || Original and compiled translations; application help files ||
|| migration/ || Setup and migration files ||
|| templates/ || Template files ||
|| themes/ || Themes directories ||
|| themes/default/ || Base theme ||
|| themes/defaults/graphics/ || Base theme 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((Doc/Dev/Framework)) for details.
* The {{locale/}} directory has a subdirectory for each locale, e.g. {{locale/de/}} or {{locale/zh_TW/}} if locale has multiple regions. These subdirectories contain the translated help file {{help.xml}} and the directory {{LC_MESSAGES/}} which contains the actual, compiled translation, e.g. {{imp.mo}} and original source file, e.g. {{imp.po}}.
* 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)) 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/}}.