static function importCollection($url, $calendar) { ob_start(); require_once ROOTPATH . '/plugins/davicalCliente/caldav-client-v2.php'; $cal = new CalDAVClient(Config::service('CalDAV', 'url') . '/', Config::me('uid'), Config::me('password')); $events = $cal->GetCollectionETags($url); $args = array(); foreach ($events as $ie => $ve) { $cal->DoGETRequest($ie); $sync = Controller::parse(array('service' => 'iCal'), $cal->GetResponseBody(), array('calendar' => $calendar, 'owner' => Config::me('uidNumber'))); if (is_array($sync)) { $args = array_merge($args, $sync); } } include ROOTPATH . '/Sync.php'; ob_end_clean(); }
$server_delete_urls = array(); $push_urls = array(); $push_events = array(); $newcache = (object) array('server_ctag' => $calendar->getctag, 'local_ctag' => isset($local_calendar->getctag) ? $local_calendar->getctag : null, 'server_etags' => array(), 'local_etags' => array()); if (isset($cache)) { if (!$sync_in && isset($cache->server_etags)) { $newcache->server_etags = $cache->server_etags; } if (!$sync_out && isset($cache->local_etags)) { $newcache->local_etags = $cache->local_etags; } } if ($sync_in) { // So it seems we do need to sync. We now need to check each individual event // which might have changed, so we pull a list of event etags from the server. $server_etags = $caldav->GetCollectionETags(); // printf( "\nGetCollectionEtags Response:\n%s\n", $caldav->GetXmlResponse() ); // print_r( $server_etags ); if ($sync_all) { // The easy case. Sync them all, delete nothing $insert_urls = $server_etags; foreach ($server_etags as $href => $etag) { $fname = preg_replace('{^.*/}', '', $href); $newcache->server_etags[$fname] = $etag; printf('Need to pull "%s"' . "\n", $href); } } else { // Only sync the ones where the etag has changed. Delete any that are no // longer present at the remote end. foreach ($server_etags as $href => $etag) { $fname = preg_replace('{^.*/}', '', $href);