This is an old revision of the document!
Google Calendar Sync
mod61.01
ALTER TABLE `vtiger_google_oauth` ADD `additional` TEXT NOT NULL AFTER `userid`;
/* modified by swarnat - mod61.01 */
At first install latest version of my Vtiger Tools. This is absolutely necessary, because I use this module to implement to logic.
File: /modules/Google/connectors/Calendar.php
Search
$query = $calendars->newEventQuery($query);
Insert after
/* modified by swarnat - mod61.01 */ if($this->calendarId !== null) { $query->setUser($this->calendarId); } /* modified by swarnat - mod61.01 */
Search
$createdEntry = $gContact->insertEvent($entity);
Replace this line with
/* modified by swarnat - mod61.01 */ try { if($this->calendarId !== null) { $createdEntry = $gContact->insertEvent($entity, "http://www.google.com/calendar/feeds/".$this->calendarId."/private/full"); } else { $createdEntry = $gContact->insertEvent($entity); } } catch (Exception $e) { var_dump($e->getMessage()); } /* modified by swarnat - mod61.01 */
Search (The end of this file)
} ?>
Insert before
/* modified by swarnat - mod61.01 */ public function getCalendarList() { $gdata = new Zend_Gdata_Calendar($this->apiInstance); $calendarList = $gdata->getCalendarListFeed(); $calendars = array(); foreach ($calendarList as $calendar) { $calendars[] = array('title' => (string)$calendar->title, 'id' => (string)$calendar->id); } return $calendars; } protected $calendarId = null; public function setCalendarId($calendarId) { $this->calendarId = $calendarId; } /* modified by swarnat - mod61.01 */
File: /modules/Google/controllers/Calendar.php
Search
public function getSourceType() { return 'Events'; }
Insert after
/* modified by swarnat - mod61.01 */ public function getCalendarId() { $adb = \PearDatabase::getInstance(); $sql = 'SELECT calendar_id FROM vtiger_gcal_sync WHERE user_id = ?'; $result = $adb->pquery($sql, array($this->user->id)); if($adb->num_rows($result) == 0) { return null; } return $adb->query_result($result, 0, 'calendar_id'); } public function getCalendarList() { return $this->targetConnector->getCalendarList(); } public function setCalendarId($calendarId) { $this->targetConnector->setCalendarId($calendarId); } /* modified by swarnat - mod61.01 */
File: /modules/Google/models/Module.php
Search
$db->pquery($query, array($module, $id));
Insert after
/* modified by swarnat - mod61.01 */ $query = "DELETE FROM vtiger_gcal_sync WHERE user_id = ?"; $db->pquery($query, array($id)); /* modified by swarnat - mod61.01 */
File: /modules/Google/views/List.php
Search
$controller = new Google_Calendar_Controller($user);
Insert After
/* modified by swarnat - mod61.01 */ $calId = $controller->getCalendarId(); if(empty($calId)) { $list = $controller->getCalendarList(); $this->viewer->assign('calendars', $list); $this->viewer->view('GCalChooser.tpl', 'SwVtTools');
return; } $controller->setCalendarId($calId); /* modified by swarnat - mod61.01 */