function delete_event_calendar_extern($event){ ajx_current("empty"); if($event->getExtCalId() > 0){ require_once 'Zend/Loader.php'; Zend_Loader::loadClass('Zend_Gdata'); Zend_Loader::loadClass('Zend_Gdata_AuthSub'); Zend_Loader::loadClass('Zend_Gdata_ClientLogin'); Zend_Loader::loadClass('Zend_Gdata_Calendar'); $users = ExternalCalendarUsers::findByContactId(); $calendar = ExternalCalendars::findById($event->getExtCalId()); $user = $users->getAuthUser(); $pass = $users->getAuthPass(); $service = Zend_Gdata_Calendar::AUTH_SERVICE_NAME; try { $client = Zend_Gdata_ClientLogin::getHttpClient($user,$pass,$service); $event_id = 'http://www.google.com/calendar/feeds/'.$calendar->getCalendarUser().'/private/full/'.$event->getSpecialID(); $gcal = new Zend_Gdata_Calendar($client); $edit_event = $gcal->getCalendarEventEntry($event_id); $edit_event->delete(); } catch(Exception $e) { flash_error($e->getMessage()); ajx_current("empty"); } } }
function created_event_google_calendar($object, $event) { require_once 'Zend/Loader.php'; Zend_Loader::loadClass('Zend_Gdata'); Zend_Loader::loadClass('Zend_Gdata_AuthSub'); Zend_Loader::loadClass('Zend_Gdata_ClientLogin'); Zend_Loader::loadClass('Zend_Gdata_Calendar'); $users = ExternalCalendarUsers::findByContactId(); $calendar = ExternalCalendars::findById($event->getExtCalId()); $user = $users->getAuthUser(); $pass = $users->getAuthPass(); $service = Zend_Gdata_Calendar::AUTH_SERVICE_NAME; $client = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $service); $calendarUrl = 'http://www.google.com/calendar/feeds/' . $calendar->getCalendarUser() . '/private/full'; $gdataCal = new Zend_Gdata_Calendar($client); $newEvent = $gdataCal->newEventEntry(); $newEvent->title = $gdataCal->newTitle($event->getObjectName()); $newEvent->content = $gdataCal->newContent($event->getDescription()); $star_time = explode(" ", $event->getStart()->format("Y-m-d H:i:s")); $end_time = explode(" ", $event->getDuration()->format("Y-m-d H:i:s")); if ($event->getTypeId() == 2) { $when = $gdataCal->newWhen(); $when->startTime = $star_time[0]; $when->endTime = $end_time[0]; $newEvent->when = array($when); } else { $when = $gdataCal->newWhen(); $when->startTime = $star_time[0] . "T" . $star_time[1] . ".000-00:00"; $when->endTime = $end_time[0] . "T" . $end_time[1] . ".000-00:00"; $newEvent->when = array($when); } // insert event $createdEvent = $gdataCal->insertEvent($newEvent, $calendarUrl); $event_id = explode("/", $createdEvent->id->text); $special_id = end($event_id); $event->setSpecialID($special_id); $event->setExtCalId($calendar->getId()); $event->save(); }
function sync_event_on_extern_calendar($event, $user = null, $calendar = null) { //check external user if (is_null($user)) { $user = ExternalCalendarUsers::findByContactId(); } if (!$user instanceof ExternalCalendarUser) { return; } //check external calendar if (is_null($calendar)) { $calendar = ExternalCalendars::findById($event->getExtCalId()); } if (!$calendar instanceof ExternalCalendar) { return; } //check if calendar sync is activated if ($calendar->getSync() == 0) { return; } //connect with google $service = $this->connect_with_google_calendar($user); $this->update_event_on_google_calendar($event, $calendar, $user, $service); }