Perhaps the greatest feature of Horde and all of it's modules is the flexibility to adapt to a myriad of different uses and I would expect that eventually, a more integrated system of managing 'defaults' will become part of the code but at this moment in time, the only way to effect settings system wide is to edit the various prefs.php file inside each module.
In general: Add any local changes to a prefs.local.php or a prefs.d/<name>,php file. Never change prefs.php because this file is overwritten on upgrade and contains vital system information about the preferences that must match the other parts of the system. For instance,
kronolith/config/prefs.php contains:To change the default value add the following PHP code to either kronolith/config/prefs.local.php or kronolith/config/prefs.d/name.php name can be any name you like, I prefer the local hostname:<?php // Address book(s) to use when expanding addresses `` // Refer to turba/config/sources.php for possible source values // // You can provide default values this way: // 'value' => json_encode(array('source_one', 'source_two')) $_prefs['search_sources'] = array( 'value' => '' ); ?>
<?php <?PHP $_prefs['search_sources']['value'] = '["favourites"]'; ?>
You can provide default values by hooks, which are little PHP functions.
Since Horde4 hooks are organized in classes, e.g. config/hooks.php uses class Horde_Hooks, whereas kronolith/config/hooks.php uses class Kronolith_Hooks. See config/hooks.php for a description of hooks.
For instance to automatically prepare Kronolith's search_sources with all address books the user has access to:
Enable the hook in the local prefs.php kronolith/config/prefs.local.php:
<?PHP
$_prefs['search_sources']['hook'] = true;
</code>
<?php <?PHP class Kronolith_Hooks { public function prefs_init($pref, $value, $username, $scope_ob) { if (is_null($username)) { // not logged in return $value; } switch ($pref) { case 'search_sources': // enable all sources by default if($value == '') { $sources = $GLOBALS['registry']->call('contacts/sources'); $value = json_encode(array_keys($sources)); $scope_ob->set($pref, $value); $scope_ob->setDirty($pref, true); } return $value; } } } ?>