防止个别删除的重复出现的Google日历条目通过Zend显示?

时间:2011-10-16 21:00:29

标签: php zend-framework events gdata recurring

我正在创建一个包含计划员的网站,并希望将其与Google日历同步。到目前为止,使用Zend框架的GData类可以很好地工作。我遇到了每周都会出现重复事件的问题,即使它们被单独删除。 我试过了:

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

但是现在很多事件都没有出现在我的计划者的第一周,而且在某些星期我只是错过了一些事件。 这是我脚本的基本结构:

require_once '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('mypubliccalendar@gmail.com');    
$query->setVisibility('public');
$query->setProjection('full');
$query->setStartMin(date('Y-m-d', strtotime(week_start_date("Y-m-d H:i:s"))));
$query->setStartMax(date('Y-m-d', strtotime(week_start_date("Y-m-d H:i:s")) +
    (60*60*24*7*10)));
$query->setOrderby('starttime');
$query->setParam('singleevents','true');

try { 
    $eventFeed = $service->getCalendarEventFeed($query); 
}

catch (Zend_Gdata_App_Exception $e) { 
    return; 
}

foreach ($eventFeed as $event) {        
    foreach ($event->when as $when) {
         // transform data
    }
}

如何让我的规划师获得与我的Google日历完全相同的数据?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。我想zend框架使用XML feed中的resultsPerPage值。由于事件是按照相反的时间顺序检索的,并且在我10天的日期范围内有55个条目,因此第一周保持空白。我决定采用简单的解决方案,将我的日期范围缩短到5周。现在它完美无缺!