conf.xml The XML file is layed out using several sections. These sections relate to variables that are used within horde. Here is an example XML snippet and the resulting configuration file entries: Application Settings unified unified context sidebyside is the start of the config file. Sections produces first level $conf['wicked'] variables. Multiple configsection names produces multiple levels. ... produces $conf['level1']['level2'] variables. Headers puts text to help organize the screen Descriptions Standalone informational text which does not affect the generated configuration. This might be helpful at the top of a configsection, configswitch or configtab Strings for selecting an item from a list name - Second level $conf['configsection']['configstring'] variables desc - This is what shows up near the box for information about the entry required - will put a red star and make user enter data (true/false) Passwords for allowing masked input (show only stars) name - The Variable Key desc - This is what shows up near the box for information about the entry required - will put a red star and make user enter data (true/false) Secrets Autogenerates a random ID if empty and no default provided name - The Variable Key desc - This is what shows up near the box for information about the entry required - will put a red star and make user enter data (true/false) Verbatim PHP Allows administrators to convey arbitrary PHP code. Use with care and provide a sane default. Supported attributes name - The variable key $conf['anysections']['custom'] variables desc - This is what shows up near the box for information about the entry required - will put a red star and make user enter data (true/false) default - Predefined value Booleans value name - Second level $conf['configsection']['configboolean'] variables desc - This is what shows up near the box for information about the entry required - will put a red star and make user enter data (true/false) value - could be false or true Enums (Select From a List) default_entry to provide a list of choices name - Second level $conf['configsection']['configenum'] variables desc - Descriptive text for list within configenum section use: list1 list2 Multi-Enums (Select Any Number From a List) for selecting multiple items from a list name - Second level $conf['configsection']['configmultienum'] desc - Descriptive text for multienum entries Special Values - "values" list of active horde apps name - Refers to case entry in Horde_Application::configSpecialValues() See http://www.ralf-lang.de/2012/02/22/horde-config-how-to-fill-dropdowns-with-application-data-with-configspecial/ for a detailed explanation. Predefined Specials TODO: More detail on usage. For now, just a heads up so users don't reinvent the wheel for configuring an SQL backend or using the default defined in the horde base app for configuring a NoSQL (Mongo etc) backend or using the default defined in the horde base app for configuring an LDAP backend or using the default defined in the horde base app for configuring Virtual Filesystem Storage or using the default defined in the horde base app Organize your config screen into tabs Switches - mechanism for grouping sets of options Use config entries from above to populate option choices. name - Third level $conf['configsection']['configstring']['configswitch'] desc - Descriptive text for configswitch entries provides value for configswitch statement Must reside within section name - $conf['configsection']['configstring']['configswitch'] = name_value desc - List value description