Re: contacts/addAddressbook
Lukas Weiss <[email protected]>
| Newsgroups | gmane.comp.horde.devel |
|---|---|
| Message-ID | <[email protected]> |
Am 30.10.2015 um 15:31 schrieb Michael J Rubinsky: > > Quoting Lukas Weiss <[email protected]>: > >> Am 29.10.2015 um 16:13 schrieb Michael J Rubinsky: >>> >>> Quoting Lukas Weiss <[email protected]>: >>> >>>> Am 29.10.2015 um 15:31 schrieb Michael J Rubinsky: >>>>> >>>>> Quoting Lukas Weiss <[email protected]>: >>>>> >>>>>> Am 28.10.2015 um 14:33 schrieb Michael J Rubinsky: >>>>>>> >>>>>>> Quoting Lukas Weiss <[email protected]>: >>>>>>> >>>>>>>> Am 27.10.2015 um 17:46 schrieb Michael J Rubinsky: >>>>>>>>> >>>>>>>>> Quoting Lukas Weiss <[email protected]>: >>>>>>>>> >>>>>>>>>> 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: [email protected] >>>>> >>>>> >>>>> >>>>> >>>>> >>>> >>>> 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? > > > > in turba/conf.php: $conf['shares']['source'] = 'localsql'; and this is my backends.local.php (almost the same as in backends.php): http://pastebin.com/WPeXyVmu I will try to find out why this is happening... -- dev mailing list Frequently Asked Questions: http://wiki.horde.org/FAQ To unsubscribe, mail: [email protected]