[kronolith] Two config questions
cjdl01
cjdl01 at brokensolstice.com
Sat Dec 3 22:02:31 UTC 2011
(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?
More information about the kronolith
mailing list