2009-08-17 22 views
5

Estoy tratando de mostrar una lista de los próximos 20 días de una cuenta de calendario de Google. Desafortunadamente, los eventos recurrentes no se muestran (supongo que porque sus tiempos de inicio son viejos) ... Entonces. ¿Algunas ideas?Calendario de Google: muestra eventos recurrentes, como eventos normales

require_once dirname(__FILE__).'/../../../Zend/Loader.php'; 
Zend_Loader::loadClass('Zend_Gdata'); 
Zend_Loader::loadClass('Zend_Gdata_HttpClient'); 
Zend_Loader::loadClass('Zend_Gdata_Calendar'); 

$service = new Zend_Gdata_Calendar(); 

$query = $service->newEventQuery(); 
$query->setUser('REMOVED'); 
$query->setVisibility('public'); 
$query->setProjection('full'); 
$query->setOrderby('starttime'); 
$query->setSortOrder('ascending'); 
$query->setFutureevents('true'); 
$query->setMaxResults(20); 

try { $eventFeed = $service->getCalendarEventFeed($query); } 
catch (Zend_Gdata_App_Exception $e) { return; } 

Estoy dispuesto a aceptar cualquier método alternativo que obtenga todos mis eventos públicos en orden ascendente. He intentado con el RSS, pero las fechas parecen ser las que se agregaron al calendario.

+1

Secundado. Todavía tengo que encontrar una única biblioteca de fuentes de calendario (iCal, calendario de google, xml) que lo haga bien. – xkcd150

Respuesta

6

La proyección es algo con lo que he jugado antes. No ayuda (a menos que quiera analizar y explotar eventos recurrentes manualmente). Pero that link era dorado.

$query->setParam('singleevents','true'); 

Desde sus documentos:

singleevents

Indica si los acontecimientos que se repiten deben ampliarse o representados como un evento único .

valores válidos son true (ampliar eventos recurrentes) o falso (dejar eventos recurrentes representadas como individuales eventos). El valor predeterminado es falso.

En mi opinión, false es un estúpido valor por defecto pero hey-ho. ¡Parece que funciona ahora!

Cuestiones relacionadas