\documentclass{article}
\usepackage{ulem}
\usepackage{graphicx}
\usepackage{hyperref}
\pagestyle{headings}
\begin{document}
\part{Filesystem structure of a Horde application}
\textbf{This information is valid for Horde 3 only. See <a href="https://wiki.horde.org/Doc/Dev/Filesystem">Doc/Dev/Filesystem</a> for Horde 4 and later.}

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:<br />
| Directory | Content |<br />
| --- | --- |<br />
| / | Base directory with the controller scripts called by the browser |<br />
| config/ | Configuration files |<br />
| docs/ | Administrator documentation |<br />
| lib/ | Application-specific library files |<br />
| locale/ | Compiled translations and help files |<br />
| po/ | Translations |<br />
| scripts/ | CLI scripts for setup and maintenance |<br />
| scripts/sql/ | SQL scripts for setup |<br />
| scripts/upgrades/ | CLI and SQL scripts for upgrades |<br />
| templates/ | Template files |<br />
| themes/ | Base stylesheet and theme directories |<br />
| themes/graphics/ | Icons |

Usually there are more directories, depending on the application:

\begin{itemize}
\item If there are many controller scripts for an application, they may be grouped into directories under the base directory.


\item The \texttt{lib/} directory has many levels of subdirectories. See Doc/Dev/<a href="https://wiki.horde.org/FrameworkH3">FrameworkH3</a> for details.


\item The \texttt{locale/} directory has a subdirectory for each locale, e.g. \texttt{locale/de\_DE/}. These subdirectories contain the translated help file \texttt{help.xml} and the directory \texttt{LC\_MESSAGES/} which contains the actual, compiled translation, e.g. \texttt{imp.mo}.


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


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


\item Each <a href="https://wiki.horde.org/Doc/Dev/ThemesH3">theme</a> has a subdirectory, e.g. \texttt{themes/bluewhite/}; if a theme provides its own icon set, the icons are inside a \texttt{graphics/} subdirectory, e.g. \texttt{themes/bluewhite/graphics/}.


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


\end{itemize}
\end{document}
