示例#1
0
<?php

ini_set('display_errors', 'On');
if (!defined('sugarEntry')) {
    define('sugarEntry', true);
}
require_once "modules/GoogleSync/GoogleSync.php";
GoogleSync::init();
GoogleSync::test();
示例#2
0
 static function saveEvent(&$newEvent, $bean, $user)
 {
     $client = self::getClient($user);
     if ($client != false) {
         $gdataCal = new Zend_Gdata_Calendar($client);
         if (empty($newEvent->id->text)) {
             try {
                 // Upload the event to the calendar server
                 // A copy of the event as it is recorded on the server is returned
                 $createdEvent = $gdataCal->insertEvent($newEvent);
             } catch (Zend_Gdata_App_Exception $e) {
                 var_dump($e->getResponse());
                 $GLOBALS['log']->error("Failed to insert Event in GoogleCalender: " . print_r($e->getMessage(), 1));
                 die;
             }
         } else {
             try {
                 $newEvent->save();
                 $createdEvent = $newEvent;
             } catch (Zend_Gdata_App_Exception $e) {
                 var_dump($e->getResponse());
                 $GLOBALS['log']->error("Failed to update Event in GoogleCalender: " . print_r($e->getMessage(), 1));
                 die;
             }
         }
         $gs = new GoogleSync();
         if ($gsid = self::getGoogleEntryId($bean, $user)) {
             $gs->retrieve($gsid);
         }
         $gs->parent_name = $bean->module_dir;
         $gs->parent_id = $bean->id;
         // Had to be saved already!;
         $gs->user_id = $user->id;
         $gs->google_id = $createdEvent->id->text;
         $gs->save();
     }
 }
示例#3
0
function GoogleCalendarSync()
{
    require_once 'modules/GoogleSync/GoogleSync.php';
    global $timedate;
    GoogleSync::init();
    $usr = new User();
    $users = $usr->get_full_list();
    foreach ($users as $user) {
        $client = GoogleSync::getClient($user);
        if ($client != false) {
            $service = new Zend_Gdata_Calendar($client);
            try {
                $listFeed = $service->getCalendarEventFeed();
                foreach ($listFeed as $calendar) {
                    $id = $calendar->id;
                    $googleSync = new GoogleSync();
                    $list = $googleSync->get_list('', "{$googleSync->table_name}.google_id='{$id}'");
                    if ($list['row_count'] > 0) {
                        $event = BeanFactory::getBean($list['list'][0]->parent_name);
                        $event->retrieve($list['list'][0]->parent_id);
                        $event->name = $calendar->title->text;
                        if (!preg_match('/event.private$/', $calendar->visibility->value)) {
                            $event->description = $calendar->content->text;
                        }
                        GoogleSync::setDates($event, $calendar->when[0]->startTime, 0);
                        switch ($event->module_dir) {
                            case 'Calls':
                                $event->name = preg_replace('/^Звонок: /ui', '', $calendar->title->text);
                                GoogleSync::setReminder($event, $calendar->when[0]->reminders[0]);
                                GoogleSync::setDuration(&$event, $calendar->when[0]->startTime, $calendar->when[0]->endTime);
                                break;
                            case 'Meetings':
                                $event->name = preg_replace('/^Звонок: /ui', '', $calendar->title->text);
                                GoogleSync::setReminder($event, $calendar->when[0]->reminders[0]);
                                GoogleSync::setDuration(&$event, $calendar->when[0]->startTime, $calendar->when[0]->endTime);
                                $event->location = $calendar->where[0]->valueString;
                                break;
                            case 'Tasks':
                                $event->name = preg_replace('/^Задача: /ui', '', $calendar->title->text);
                                GoogleSync::setDates($event, $calendar->when[0]->endTime, 1);
                                break;
                        }
                        $event->from_where = 'GOOGLE';
                        $event->save();
                    } else {
                        if (preg_match('/^Звонок/ui', $calendar->title->text)) {
                            $event = new Call();
                            $event->name = preg_replace('/^Звонок: /ui', '', $calendar->title->text);
                            GoogleSync::setReminder($event, $calendar->when[0]->reminders[0]);
                            GoogleSync::setDuration(&$event, $calendar->when[0]->startTime, $calendar->when[0]->endTime);
                        } elseif (preg_match('/^Встреча/ui', $calendar->title->text)) {
                            $event = new Meeting();
                            $event->name = preg_replace('/^Встреча: /ui', '', $calendar->title->text);
                            GoogleSync::setReminder($event, $calendar->when[0]->reminders[0]);
                            GoogleSync::setDuration(&$event, $calendar->when[0]->startTime, $calendar->when[0]->endTime);
                            $event->location = $calendar->where[0]->valueString;
                        } elseif (preg_match('/^Задача/ui', $calendar->title->text)) {
                            $event = new Task();
                            $event->name = preg_replace('/^Задача: /ui', '', $calendar->title->text);
                            GoogleSync::setDates($event, $calendar->when[0]->endTime, 1);
                        }
                        if (isset($event)) {
                            if (!preg_match('/event.private$/', $calendar->visibility->value)) {
                                $event->description = $calendar->content->text;
                            }
                            GoogleSync::setDates($event, $calendar->when[0]->startTime, 0);
                            $event->from_where = 'GOOGLE';
                            $event->assigned_user_id = $user->id;
                            $event_id = $event->save();
                            $googleSync->parent_name = $event->module_dir;
                            $googleSync->parent_id = $event_id;
                            $googleSync->google_id = $id;
                            $googleSync->user_id = $user->id;
                            $googleSync->save();
                        }
                    }
                }
            } catch (Zend_Gdata_App_Exception $e) {
            }
        }
    }
    return true;
}
示例#4
0
 function onAfterRestore(&$bean, $event, $arguments)
 {
     $bean->deleted = 0;
     GoogleSync::eventSave($bean);
 }