Календарь Google - Отображение повторяющихся событий, таких как обычные события
Я пытаюсь показать список событий на следующие 20 дней из учетной записи календаря Google. Приводящие в бешенство повторяющиеся события не отображаются (я полагаю, потому что время их начала старое)... Итак, есть какие-нибудь идеи?
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; }
Я готов принять любые альтернативные методы, которые приведут все мои публичные мероприятия в порядке возрастания. Я пробовал RSS, но даты, похоже, соответствуют времени, когда они были добавлены в календарь.
2 answers
Проекция - это то, с чем я играл раньше. Это не помогает (если только я не хочу анализировать и анализировать повторяющиеся события вручную). Но эта связь была золотой.
$query->setParam('singleevents','true');
Из их документов:
Одиночные события
Указывает , следует ли расширять повторяющиеся события или представлять их как одно событие.
Допустимыми значениями являются true (развернуть повторяющиеся события) или false (оставить повторяющиеся события в виде одного события). Значение по умолчанию равно false.
На мой взгляд, false
- глупый дефолт, но хей-хо. Похоже, теперь это работает!
Изменение этого:
$query->setProjection('full');
К этому:
$query->setProjection('composite');
Предоставит вам всевозможные дополнительные данные, включая повторяющиеся события. Это соответствует ссылке на API календаря Google: http://code.google.com/apis/calendar/docs/2.0/reference.html