[kronolith] Two config questions

cjdl01 cjdl01 at brokensolstice.com
Tue Dec 6 02:29:18 UTC 2011


Quoting Michael J Rubinsky <mrubinsk at horde.org>:

> 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

I was directed not to do that earlier in this thread... (not by you,  
of course ;) )

So, I think I know what you mean, but I'm not sure I got the syntax  
right.  I put this in my horde/kronolith/config/prefs.local.php:

$_prefs['search_sources'] = array(
     'value' => 'localsql'
);

I also tried this:

$_prefs['search_sources'] = array(
     'value' => json_encode(array('localsql'))
);

Neither is working, so this must be wrong. Can you give me an example  
of how this works?


Thanks.

-Chris



More information about the kronolith mailing list