This is an old revision of the document!
Google Calendar Sync
At first install latest version of my Vtiger Tools. This is absolutely necessary, because I use this module to implement to management logic.
You need to press the “initialize” button on the management view of Vtiger Tools in the section “google Calendar”
1. File: /modules/Google/connectors/Calendar.php
1.1 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 */
1.2 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 */
1.3 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 */
2. File: /modules/Google/controllers/Calendar.php
2.1 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 */
3. File: /modules/Google/models/Module.php
3.1 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 */
4. File: /modules/Google/views/List.php
4.1 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 */