[dev] contacts/addAddressbook

Michael J Rubinsky mrubinsk at horde.org
Fri Oct 30 14:31:33 UTC 2015


Quoting Lukas Weiss <lukas.weiss at raiffeisen.it>:

> Am 29.10.2015 um 16:13 schrieb Michael J Rubinsky:
>>
>> Quoting Lukas Weiss <lukas.weiss at raiffeisen.it>:
>>
>>> Am 29.10.2015 um 15:31 schrieb Michael J Rubinsky:
>>>>
>>>> Quoting Lukas Weiss <lukas.weiss at raiffeisen.it>:
>>>>
>>>>> Am 28.10.2015 um 14:33 schrieb Michael J Rubinsky:
>>>>>>
>>>>>> Quoting Lukas Weiss <lukas.weiss at raiffeisen.it>:
>>>>>>
>>>>>>> Am 27.10.2015 um 17:46 schrieb Michael J Rubinsky:
>>>>>>>>
>>>>>>>> Quoting Lukas Weiss <lukas.weiss at raiffeisen.it>:
>>>>>>>>
>>>>>>>>> Am 27.10.2015 um 13:50 schrieb Andy Dorman:
>>>>>>>>>> On 10/27/2015 02:31 AM, Lukas Weiss wrote:
>>>>>>>>>>> Hi,
>>>>>>>>>>>
>>>>>>>>>>> I wanted to create a new address book with the contacts API.
>>>>>>>>>>>
>>>>>>>>>>> $registry->call(
>>>>>>>>>>> 'contacts/addAddressbook',
>>>>>>>>>>> array(
>>>>>>>>>>>     'name' => 'New Addressbook'
>>>>>>>>>>> )
>>>>>>>>>>> );
>>>>>>>>>>>
>>>>>>>>>>> With this call, the address book is created, but unfortunately it
>>>>>>>>>>> can't
>>>>>>>>>>> be selected by the user.
>>>>>>>>>>>
>>>>>>>>>>> In  the database, the new address book has no attribute_params
>>>>>>>>>>> (NULL).
>>>>>>>>>>> The address books created by the user have attribute_params like
>>>>>>>>>>> this:
>>>>>>>>>>>
>>>>>>>>>>> a:2:{s:6:"source";s:8:"localsql";s:4:"name";s:23:"5nR0Q0rhlkzNzGn0KhZ8AeI";}
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> By adding this params to the address book created with the
>>>>>>>>>>> API, the
>>>>>>>>>>> address book can be selected.
>>>>>>>>>>>
>>>>>>>>>>> Is this a bug or is there anything i forgot to do?
>>>>>>>>>>>
>>>>>>>>>>> Thanks!
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> I may be wrong as I have never used the contacts API, but is it
>>>>>>>>>> possible
>>>>>>>>>> you still need to set the params in turba's backends.local.php?
>>>>>>>>>>
>>>>>>>>>> Read the docs and examples in turba's backends.php file to see how
>>>>>>>>>> to do
>>>>>>>>>> it.
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> I think the backends.local.php is configured correctly since
>>>>>>>>> everything is working fine using the Horde frontend (I can
>>>>>>>>> create and
>>>>>>>>> remove address books in Turba and add new contacts).
>>>>>>>>>
>>>>>>>>> In Turba frontend I see also the address books created with the
>>>>>>>>> API,
>>>>>>>>> but when I select one of these, I am redirected to the default
>>>>>>>>> address
>>>>>>>>> book.
>>>>>>>>>
>>>>>>>>> Maybe this info is useful:
>>>>>>>>> With the contacts API I get all the address books created in Horde
>>>>>>>>> fronted by calling contacts/sources, but I do not receive the ones
>>>>>>>>> created with contacts/addAddressbook.
>>>>>>>>> However, with contact/listShares i really get all address books
>>>>>>>>> (even
>>>>>>>>> the ones created by the API call).
>>>>>>>>
>>>>>>>>
>>>>>>>> What version of Horde/Turba? Git/PEAR?
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> I am using PEAR
>>>>>>>
>>>>>>> Horde 5.2.7
>>>>>>> Turba 4.2.8
>>>>>>
>>>>>>
>>>>>> I cannot reproduce. Is the user authenticated to Horde when you run
>>>>>> the
>>>>>> api call?
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>> Just to try I put this code into turba/index.php right after the
>>>>> appInit:
>>>>>
>>>>> $GLOBALS['registry']->call(
>>>>>   'contacts/addAddressbook',
>>>>>   array(
>>>>>       'name' => 'testAddressbook'
>>>>>   )
>>>>> );
>>>>>
>>>>> The address book is created and I see it in the list, but I can't
>>>>> select or remove it.
>>>>
>>>> What share backend are you using?
>>>>
>>>>>
>>>>> --
>>>>> dev mailing list
>>>>> Frequently Asked Questions: http://wiki.horde.org/FAQ
>>>>> To unsubscribe, mail: dev-unsubscribe at lists.horde.org
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>> i am using mysql
>>>
>>
>> Still cannot reproduce. You are going to need to find out why the share
>> ids are not being created. Start looking in Turba_Api::addAddressbook
>> and look to see why $share_name is not being honored when passed to
>> Turba::createShare.
>>
>>
>>
>>
>
> In turba/lib/Form/CreateAddressBook.php the new address book is  
> created like this:
>
> $params = array(
>             'params' => array('source' =>  
> $GLOBALS['conf']['shares']['source']),
>             'name' => $this->_vars->get('name'),
>             'desc' => $this->_vars->get('description'),
> );
> return $driver->createShare(strval(new Horde_Support_Randomid()), $params);
>
>
> But in Turba_Api::addAddressbook it is created without the params array:
>
> $share = Turba::createShare($share_name, array('name' => $name));
>
> Is there a reason for this? If I add the params part it works properly.

These are two different methods. The API calls the static  
Turba::createShare, not the driver object's createShare method and  
passes the 'name' parameter - which is the share's display name. The  
share's internal name is the $share_name variable which is passed as  
the first parameter.

You state that passing the share's parameters make it work. That leads  
me to believe that your configuration is incorrect. Are you *sure*  
that you have a valid $conf['shares']['source'] value in Turba's  
configuration?


-- 
mike
The Horde Project
http://www.horde.org
https://www.facebook.com/hordeproject
https://www.twitter.com/hordeproject
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5751 bytes
Desc: S/MIME Signature
URL: <http://lists.horde.org/archives/dev/attachments/20151030/a314ae2a/attachment.bin>


More information about the dev mailing list