/** * @return Zend_Gdata_App_Feed|NULL */ public static function internalGetEvents($calendar, $startDate = null, $endDate = null, $max = 1000, $filter = null, $orderBy = GCalendarZendHelper::ORDER_BY_START_TIME, $pastEvents = false, $sortOrder = GCalendarZendHelper::SORT_ORDER_ASC, $startIndex = 1) { try { $client = new Zend_Http_Client(); if (!empty($calendar->username) && !empty($calendar->password)) { $client = Zend_Gdata_ClientLogin::getHttpClient($calendar->username, $calendar->password, Zend_Gdata_Calendar::AUTH_SERVICE_NAME); } $service = new Zend_Gdata_Calendar($client); $query = $service->newEventQuery(); $query->setUser($calendar->calendar_id); if ($calendar->magic_cookie != null) { $query->setVisibility('private-' . $calendar->magic_cookie); } $query->setProjection('full'); $query->setOrderBy($orderBy); $query->setSortOrder($sortOrder); $query->setSingleEvents('true'); if (!empty($filter)) { $query->setQuery($filter); } if ($startDate != null) { $query->setStartMin(JFactory::getDate($startDate)->format('Y-m-d\\TH:i:s')); } if ($endDate != null) { $query->setStartMax(JFactory::getDate($endDate)->format('Y-m-d\\TH:i:s')); } if ($startDate == null && $endDate == null) { $query->setFutureEvents($pastEvents ? 'false' : 'true'); } $query->setMaxResults($max); $query->setStartIndex($startIndex); $query->setParam('ctz', 'UTC'); $query->setParam('hl', GCalendarUtil::getFrLanguage()); $feed = $service->getFeed($query, 'GCalendar_Feed'); foreach ($feed as $event) { $event->setParam('gcid', $calendar->id); $event->setParam('gccolor', $calendar->color); $event->setParam('gcname', $calendar->name); } return $feed; } catch (Zend_Gdata_App_Exception $e) { JError::raiseWarning(200, $e->getMessage()); return null; } }