\documentclass{article}
\usepackage{ulem}
\pagestyle{headings}
\begin{document}
\tableofcontents

Horde Administrator DocumentationInstallationConfigurationConfiguration interfaceCustomization

\part{Horde Administrator Documentation}
\section{Installation}
See http://www.horde.org/apps/horde/docs/INSTALL\footnote{http://www.horde.org/apps/horde/docs/INSTALL} and the installation documents in docs/INSTALL.

\section{Configuration}
The Horde Framework and the different Horde applications are configured through a set of configuration files\footnote{http://example.com/index.php?page=Doc/Dev/Configuration}. The main configuration files \texttt{conf.php} can be modified through a web interface.

\subsection{Configuration interface}
Administrators can access this interface through the Administration -> Setup menu. There is a list of all installed applications, including their version numbers and the current state of the configuration. You will see warning messages if a configuration hasn't been created at all, or if it is outdated, because you installed a newer version.

Right above the application list is a button that checks for newer versions of the installed applications on the horde.org web server. This only works if the local web server is allowed to make an HTTP request to an external web server. If you click the button, the page is reloaded and you see a message for each installed application whether a newer version exists. If there is a newer version available, there is also a link where you can immediately download the most recent version.

If you want to configure an application, you can click on the application name in this application list. You get to a form where all system-wide configurations for that application can be modified to your needs. If there are many configuration settings, they will be organized into tabs. Click on the tab of area that you want to configure. You can change tabs without losing any changes you made in current tab.\newline
Some configuration changes may require to reload the form, to show more configuration items, based on that change. Again, no changes that have been done before get lost.

Once you are done with the configuration you can click on the button to generate the configuration. The complete configuration is then converted into a PHP file, and the web server tries to save that code into the application's \texttt{config/conf.php} file. For this to work, the \texttt{conf.php} file must have file permissions set so that the web server can overwrite that file.\newline
If you don't have the permissions set, you will get a warning message and be returned to the configuration form. At the bottom you will now see a text field with the generated PHP code. Above that field is a link that shows you the difference between the old and the new configuration. It is not necessary though to lower the server security by making the configuration file writable. There are other methods to get the generated PHP file onto the server:

\begin{itemize}
\item{You can copy the code from the text field and paste it into \texttt{config/conf.php} manually.}
\item{You can go back to the main configuration screen with the application list, where you will find some new elements at the bottom of the screen. These elements apply to \textbf{all} generated configurations \textbf{at once}. This means that you can continue to configure the applications, and the save all generated configuration files in one row.}
\begin{itemize}
\item{If you have FTP access to the web server, you can enter a valid FTP user name and password, that has write permissions on the \texttt{conf.php}, in the small form at the lower right. Click the upload button and the generated PHP file will be uploaded with FTP.}
\begin{itemize}
\item{In the lower left there is a link to review the changes you've made to all configuration files so far.}
\item{Another link downloads an executable PHP script that can be run on the server to save the generated configuration in the \texttt{conf.php} files. Again: the file that you download here is \textbf{not} the generated configuration, but a small PHP program that saves the generated configuration on the file system. It has to be executed in a shell/console. There is also:}
\item{A third link that saves this PHP script in the temporary directory of the server. This is helpful so that you don't have to first download the script locally, only to transfer it back to the server in a 2nd step. If executed, this script also tries to delete itself, so that it's not left in the temporary folder, it might contain passwords or other sensitive information. If the deletion doesn't succeed, an error message is displayed. If you reload the configuration interface after a failed deletion, you will see a new link at the bottom that allows you to delete that script.}
\end{itemize}
\end{itemize}
\end{itemize}
All methods to store the configuration try to create a backup of the old configuration. This only succeeds if there are sufficient file and directory permissions. The new configuration will be stored anyway, whether the backup could be created or not. You can restore a backup from the individual application's configuration form. If a configuration backup is found for that application, there will be another button at the bottom for restoring the backup.

The different available configuration settings are further explained on individual pages for the applications. Not all configuration settings are explained, because some are self-explanatory or already have sufficient explanations in the configuration interface, or because they simply haven't been documented yet.

\begin{itemize}
\item{Horde - Global configuration\footnote{http://example.com/index.php?page=Doc/Admin/Config/Horde}}
\begin{itemize}
\item{Facebook Integration\footnote{http://example.com/index.php?page=Doc/Admin/Config/Horde/Facebook}}
\end{itemize}
\item{IMP configuration\footnote{http://example.com/index.php?page=Doc/Admin/Config/Imp}}
\end{itemize}
\section{Customization}
There are slides of a talk\footnote{http://www.horde.org/papers/fisl2009-inside\_horde/} in the Horde Library that introduce into the 7 ways of customizing Horde:

\begin{itemize}
\item{Themes\footnote{http://example.com/index.php?page=Doc/Dev/Themes}}
\item{Configuration (see above)}
\item{Preferences\footnote{http://example.com/index.php?page=Doc/Admin/Preferences}}
\item{Permissions\footnote{http://example.com/index.php?page=Doc/Dev/PermsPackage}}
\item{Hooks}
\item{APIs\footnote{http://example.com/index.php?page=Doc/Dev/LegacyApps}}
\item{Drivers}
\end{itemize}
In the developer documentation\footnote{http://example.com/index.php?page=Doc/Dev} is also some more interesting information that's useful for administrators that want to customize their Horde installations or integrate it with other systems. See also the customization section on HowTo\footnote{http://example.com/index.php?page=HowTo}.

\end{document}
