[kronolith] Two config questions
Michael J Rubinsky
mrubinsk at horde.org
Sun Dec 4 19:50:52 UTC 2011
Quoting cjdl01 <cjdl01 at brokensolstice.com>:
> (just for a refersher) I'm trying to make is so that my konolith,
> when inviting attendees, parses ALL of the address books to which I
> have access. Right now, it only does my private, default address
> book. I use only the localsql backend. (Incidentally, I have the
> same exact issue with IMP, the auto complete only checks my private
> default address book.)
>
> So I have a horde/kronolith/config/prefs.local.php with that has
> this, and only this in it:
>
> <?php
> $_prefs['search_sources']['locked'] = true;
> $_prefs['search_sources']['hook'] = true;
> $_prefs['search_fields']['locked'] = true;
> $_prefs['search_fields']['hook'] = true;
> =================================================================
>
>
>
> I use the localsql backend exclusively, so I have a
> horde/turba/config/backends.local.php that consists of this:
>
> <?php
> /**
>
> /**
> $cfgSources['localsql'] = array(
> 'disabled' => false,
> 'title' => _("Shared Address Books"),
> 'type' => 'sql',
> 'params' => array(
> 'table' => 'turba_objects'
> ),
> 'map' => array(
> '__key' => 'object_id',
> '__owner' => 'owner_id',
> '__type' => 'object_type',
> '__members' => 'object_members',
> '__uid' => 'object_uid',
> 'firstname' => 'object_firstname',
> 'lastname' => 'object_lastname',
> 'middlenames' => 'object_middlenames',
> 'namePrefix' => 'object_nameprefix',
> 'nameSuffix' => 'object_namesuffix',
> 'name' => array('fields' => array('namePrefix', 'firstname',
> 'middlenames', 'lastname',
> 'nameSuffix'),
> 'format' => '%s %s %s %s %s',
> 'parse' => array(
> array('fields' => array('firstname',
> 'middlenames',
> 'lastname'),
> 'format' => '%s %s %s'),
> array('fields' => array('firstname', 'lastname'),
> 'format' => '%s %s'))),
> 'alias' => 'object_alias',
> 'birthday' => 'object_bday',
> 'anniversary' => 'object_anniversary',
> 'spouse' => 'object_spouse',
> 'photo' => 'object_photo',
> 'phototype' => 'object_phototype',
> 'homeStreet' => 'object_homestreet',
> 'homePOBox' => 'object_homepob',
> 'homeCity' => 'object_homecity',
> 'homeProvince' => 'object_homeprovince',
> 'homePostalCode' => 'object_homepostalcode',
> 'homeCountry' => 'object_homecountry',
> 'homeAddress' => array('fields' => array('homeStreet', 'homeCity',
> 'homeProvince',
> 'homePostalCode'),
> 'format' => "%s \n %s, %s %s"),
> 'workStreet' => 'object_workstreet',
> 'workPOBox' => 'object_workpob',
> 'workCity' => 'object_workcity',
> 'workProvince' => 'object_workprovince',
> 'workPostalCode' => 'object_workpostalcode',
> 'workCountry' => 'object_workcountry',
> 'workAddress' => array('fields' => array('workStreet', 'workCity',
> 'workProvince',
> 'workPostalCode'),
> 'format' => "%s \n %s, %s %s"),
> 'department' => 'object_department',
> 'timezone' => 'object_tz',
> 'email' => 'object_email',
> 'homePhone' => 'object_homephone',
> 'homeFax' => 'object_homefax',
> 'workPhone' => 'object_workphone',
> 'cellPhone' => 'object_cellphone',
> 'assistPhone' => 'object_assistantphone',
> 'fax' => 'object_fax',
> 'pager' => 'object_pager',
> 'title' => 'object_title',
> 'role' => 'object_role',
> 'company' => 'object_company',
> 'logo' => 'object_logo',
> 'logotype' => 'object_logotype',
> 'category' => 'object_category',
> 'notes' => 'object_notes',
> 'website' => 'object_url',
> 'freebusyUrl' => 'object_freebusyurl',
> 'pgpPublicKey' => 'object_pgppublickey',
> 'smimePublicKey' => 'object_smimepublickey',
> 'imaddress' => 'object_imaddress',
> 'imaddress2' => 'object_imaddress2',
> 'imaddress3' => 'object_imaddress3'
> ),
> 'tabs' => array(
> _("Personal") => array('firstname', 'lastname', 'middlenames',
> 'namePrefix', 'nameSuffix', 'name', 'alias',
> 'birthday', 'spouse', 'anniversary', 'photo'),
> _("Location") => array('homeStreet', 'homePOBox', 'homeCity',
> 'homeProvince', 'homePostalCode',
> 'homeCountry',
> 'homeAddress', 'workStreet', 'workPOBox',
> 'workCity', 'workProvince', 'workPostalCode',
> 'workCountry', 'workAddress', 'timezone'),
> _("Communications") => array('email', 'homePhone', 'workPhone',
> 'assistPhone', 'homeFax',
> 'cellPhone', 'fax', 'pager',
> 'imaddress',
> 'imaddress2', 'imaddress3'),
> _("Organization") => array('title', 'role', 'company',
> 'department', 'logo'),
> _("Other") => array('category', 'notes', 'website', 'freebusyUrl',
> 'pgpPublicKey', 'smimePublicKey'),
> ),
> 'search' => array(
> 'name',
> 'email'
> ),
> 'strict' => array(
> 'object_id',
> 'owner_id',
> 'object_type',
> ),
> 'export' => true,
> 'browse' => true,
> 'use_shares' => true,
> 'list_name_field' => 'lastname',
> 'alternative_name' => 'company',
> );
>
> /**
> $cfgSources['prefs'] = array(
> 'disabled' => true,
> 'title' => _("Private Address Book"),
> 'type' => 'prefs',
> 'params' => array(
> 'name' => 'prefs',
> 'charset' => 'UTF-8'
> ),
> 'map' => array(
> '__key' => 'id',
> '__type' => '_type',
> '__members' => '_members',
> '__uid' => 'uid',
> 'name' => 'name',
> 'email' => 'mail',
> 'alias' => 'alias'
> ),
> 'search' => array(
> 'name',
> 'email',
> 'alias'
> ),
> 'strict' => array(
> 'id',
> '_type',
> ),
> 'export' => true,
> 'browse' => true,
> );
>
> /**
> $cfgSources['favourites'] = array(
> 'disabled' => false,
> 'title' => _("Favourite Recipients"),
> 'type' => 'favourites',
> 'params' => array(
> 'limit' => 10
> ),
> 'map' => array(
> '__key' => 'email',
> 'name' => 'email',
> 'email' => 'email'
> ),
> 'search' => array(
> 'name',
> 'email'
> ),
> 'strict' => array(
> 'id',
> ),
> 'export' => true,
> 'browse' => true,
> );
>
>
> if (!empty($GLOBALS['conf']['imsp']['enabled'])) {
> $_imsp_auth_user = $GLOBALS['prefs']->getValue('imsp_auth_user');
> $_imsp_auth_pass = $GLOBALS['prefs']->getValue('imsp_auth_pass');
> if (!strlen($_imsp_auth_user)) {
> $_imsp_auth_user = $GLOBALS['registry']->getAuth('bare');
> $_imsp_auth_pass =
> $GLOBALS['registry']->getAuthCredential('password');
> }
> $cfgSources['imsp'] = array(
> 'disabled' => true,
> 'title' => _("IMSP"),
> 'type' => 'imsp',
> 'params' => array(
> 'server' => $GLOBALS['conf']['imsp']['server'],
> 'port' => $GLOBALS['conf']['imsp']['port'],
> 'auth_method' => $GLOBALS['conf']['imsp']['auth_method'],
> 'socket' => isset($GLOBALS['conf']['imsp']['socket']) ?
> $GLOBALS['conf']['imsp']['socket'] .
> $_imsp_auth_user . '.sck' :
> '',
> 'command' => isset($GLOBALS['conf']['imsp']['command']) ?
> $GLOBALS['conf']['imsp']['command'] : '' ,
> 'auth_mechanism' =>
> isset($GLOBALS['conf']['imsp']['auth_mechanism']) ?
>
> $GLOBALS['conf']['imsp']['auth_mechanism'] : '',
> 'username' => $_imsp_auth_user,
> 'password' => $_imsp_auth_pass,
> 'name' => $_imsp_auth_user,
> 'group_id_field' => 'group',
> 'group_id_value' => 'group',
> 'contact_ownership' => false,
> 'my_rights' => '',
> ),
> 'map' => array(
> '__key' => 'name',
> '__type' => '__type',
> '__members' => '__members',
> '__owner' => '__owner',
> '__uid' => '__uid',
> 'name' => 'fullname',
> 'email' => 'email',
> 'alias' => 'alias',
> 'company' => 'company',
> 'notes' => 'notes',
> 'workPhone' => 'phone-work',
> 'fax' => 'fax',
> 'homePhone' => 'phone-home',
> 'cellPhone' => 'cellphone',
> 'freebusyUrl' => 'freebusyUrl'
> ),
> 'search' => array(
> 'name',
> 'email',
> 'alias',
> 'company',
> 'homePhone'
> ),
> 'strict' => array(),
> 'export' => true,
> 'browse' => true,
> 'use_shares' => false,
> );
>
> /**
> if (empty($cfgSources['imsp']['use_shares']) &&
> !empty($cfgSources['imsp']['enabled'])) {
> try {
> $result =
> Horde_Core_Imsp_Utils::getAllBooks($cfgSources['imsp']);
> $resultCount = count($result);
> for ($i = 0; $i < $resultCount; ++$i) {
> $dup = false;
> foreach ($cfgSources as $key => $thisSource) {
> if (($thisSource['type'] == 'imsp') &&
> ($thisSource['params']['name'] ==
> $result[$i]['params']['name'])) {
>
> $dup = true;
> $acl = $result[$i]['params']['my_rights'];
> $cfgSources[$key]['params']['my_rights'] = $acl;
> break;
> }
> }
> if (!$dup) {
> $cfgSources[$result[$i]['params']['name']] = $result[$i];
> }
> }
> } catch (Horde_Imsp_Exception $e) {
> $GLOBALS['notification']->push($e->getMessage());
> }
> }
> }
> /* End IMSP sources. */
> =====================================================================================
>
>
>
>
> My horde/kronolith/config/hooks.php has this and only this in it:
>
> <?php
> class Kronolith_Hooks
> {
> /**
> * Adds user-defined AJAX action handlers.
> *
> * @param string $action The AJAX action.
> * @param Horde_Variables $vars The URL parameters.
> *
> * @return mixed The data to send to the browser (will be JSON encoded).
> * @throws Horde_Exception
> */
> public function ajaxaction($action, $vars)
> {
> switch ($action) {
> case 'Foo':
> return 'bar';
> }
>
> throw new Horde_Exception('Unknown action');
> }
>
> }
> ============================================================================================
>
>
>
> It still does not work. What am I missing here?
What about the hook for the search_soruces value? You configured a
hook, but I don't see it in the information you posted above.
--
mike
The Horde Project (www.horde.org)
mrubinsk at horde.org
More information about the kronolith
mailing list