[dev] Littles questions for using API's methods

Gerard Breiner gerard.breiner at ias.u-psud.fr
Mon Jun 11 14:29:24 UTC 2012


Hello,

I come here back for saying my script works and do what he is supposed to do… I think to have identified the calendar for which "calendar/exportCalendars" rise the error  "Double timezone specification".
Is there a way for identifying what is not clean inside this calendar ?

Many thanks in advance.

Best regards.

Gérard


Le 6 juin 2012 à 17:08, Gerard Breiner a écrit :

> Many thanks Jan, Mike….
> 
> I picked up a few pieces of code and now I might expect  to get an export of all the calendar but I'm facing an error when I run 'calendar/exportCalendars' method :
> It seems this error occurs for calendars whose owners has never create an event.
> 
> Fatal Error:
> DateTime::__construct(): Failed to parse time string (-001-11-01) at position 7 (-): Double timezone specification
> 
> It seems this error is raised at :
> DateTime->__construct() /www/horde4/pear/php/Horde/Date/Utils.php:58
> 
> At this time my code is :
> 
> [CODE]
> #!/usr/bin/env php
> <?php
> set_include_path('/www/horde4/pear/php' . PATH_SEPARATOR . get_include_path());
> if (file_exists(dirname(__FILE__) . '/../../kronolith/lib/Application.php')) {
>    $baseDir = dirname(__FILE__) . '/../';
> } else {
>    require_once 'PEAR/Config.php';
>    $baseDir = PEAR_Config::singleton()
>        ->get('horde_dir', null, 'pear.horde.org') . '/kronolith/';
> }
> 
> require_once dirname(__FILE__) . '/../lib/Application.php';
> Horde_Registry::appInit('kronolith', array(
>    'cli' => true
> ));
> // Call a Registry method.
> // Retrieve a list of users associated with each calendar, and
>    // thus a list of users who have used kronolith and
>    // potentially have an agenda preference set.
>    $calendars = $GLOBALS['kronolith_shares']->listAllShares();
>    $users = array();
>    foreach (array_keys($calendars) as $calendarId) {
>        try {
>            $calendar = $GLOBALS['kronolith_shares']->getShare($calendarId);
>        } catch (Exception $e) {
>            continue;
>        }
>        $users = array_merge($users, $calendar->listUsers(Horde_Perms::READ));
>    }
> // Remove duplicates.
>    $users = array_unique($users);
> 
> // Tell the registry that we are doing authentication ourselves.
> define('AUTH_HANDLER', true);
> 
> $contentType = 'text/calendar';
> foreach ($users as $user) {
>   $registry->setAuth($user, array('password' => ''));
>   $cals[$user] = $registry->call('calendar/listCalendars', array('true', 'HORDE_PERMS::READ'));
>   if ($cals[$user]['0'] != '') {
>       $export[$user] = $registry->call('calendar/exportCalendar', array($cals[$user]['0'], $contentType, 'Horde_Perms::READ'));
>       $file = '/home/webadm/exportCalendars/' . $user . '.ics';
>       $hdl = fopen($file, a);
>       fwrite($hdl, $export[$user]);
>   }
> 
> } 
> fclose($hdl);
> [/CODE]
> 
> Best regards.
> 
> Gérard
> 
> 
> Le 4 juin 2012 à 17:20, Michael J Rubinsky a écrit :
> 
> 
>> 
>> Quoting Gerard Breiner <gerard.breiner at ias.u-psud.fr>:
>> 
>>> Hello Mike,
>>> 
>>> Thanks for these precisions? It make me understand what Jan meant?
>>> I will try soon to reduce registry.local.php and kept only what is necessary.
>>> 
>>> I have another question about calendar permissions and listCalendars.
>>> In the admin interface admin/perms I have assigned the permissions 'show' and 'read' to allow the user webadm access to all agendas.
>>> I dont understand why with the below code I do not list all the calendars but only the others users shares with "webadm" user? It is like the perms I setup has not been validated.
>> 
>> Permissions for calendars are set by the owner of the calendar, from within Kronolith - not from the administrative interface. Look on the calendar's property view.
>> 
>> 
>> -- 
>> mike
>> 
>> The Horde Project (www.horde.org)
>> mrubinsk at horde.org
> 
> -- 
> dev mailing list
> Frequently Asked Questions: http://wiki.horde.org/FAQ
> To unsubscribe, mail: dev-unsubscribe at lists.horde.org



More information about the dev mailing list