Предотвращение появления по отдельности удаленных повторяющихся записей Календаря Google через Zend? - PullRequest
0 голосов
/ 17 октября 2011

Я создаю веб-сайт с помощью планировщика и хочу синхронизировать его с Календарем Google.Пока что это работает довольно хорошо, используя GData Class среды Zend.Я сталкиваюсь с проблемой, когда повторяющиеся события появляются каждую неделю, даже если они по отдельности удаляются.Я попробовал:

$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 голосов
/ 25 октября 2011

Я нашел решение. Я предполагаю, что Zend Framework использует значение resultsPerPage в фиде XML. Поскольку события извлекаются в обратном хронологическом порядке, и там, где 55 записей в моем диапазоне дат 10 недель, первые недели оставались пустыми. Я решил пойти на простое решение и сократил диапазон дат до 5 недель. Теперь работает отлично!

...