本文整理汇总了PHP中Tinebase_Backend_Sql_Abstract::setETags方法的典型用法代码示例。如果您正苦于以下问题:PHP Tinebase_Backend_Sql_Abstract::setETags方法的具体用法?PHP Tinebase_Backend_Sql_Abstract::setETags怎么用?PHP Tinebase_Backend_Sql_Abstract::setETags使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Tinebase_Backend_Sql_Abstract
的用法示例。
在下文中一共展示了Tinebase_Backend_Sql_Abstract::setETags方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: importAllCalendarData
public function importAllCalendarData($onlyCurrentUserOrganizer = false, $update = false)
{
if (count($this->calendarICSs) < 1 && !$this->findAllCalendarICSs()) {
return false;
}
if (Tinebase_Core::isLogLevel(Zend_Log::INFO)) {
Tinebase_Core::getLogger()->info(__METHOD__ . ' ' . __LINE__ . ' Importing all calendar data for user ' . $this->userName . ' with ics uris: ' . print_r(array_keys($this->calendarICSs), true));
}
Tinebase_Core::getApplicationInstance($this->appName, $this->modelName)->sendNotifications(false);
Tinebase_Core::getApplicationInstance($this->appName, $this->modelName)->useNotes(false);
Sabre\VObject\Component\VCalendar::$propertyMap['ATTACH'] = '\\Calendar_Import_CalDav_SabreAttachProperty';
$this->decorator->initCalendarImport();
$application_id = Tinebase_Application::getInstance()->getApplicationByName($this->appName)->getId();
$type = Tinebase_Model_Container::TYPE_PERSONAL;
$defaultContainer = Tinebase_Container::getInstance()->getDefaultContainer($this->modelName);
$defaultCalendarsName = $this->_getDefaultCalendarsName();
foreach ($this->calendarICSs as $calUri => $calICSs) {
if (Tinebase_Core::isLogLevel(Zend_Log::INFO)) {
Tinebase_Core::getLogger()->info(__METHOD__ . ' ' . __LINE__ . ' Processing calendar ' . print_r($this->calendars[$calUri], true));
}
$container = $this->findContainerForCalendar($calUri, $this->calendars[$calUri]['displayname'], $defaultCalendarsName, $type, $application_id);
if (Tinebase_Core::isLogLevel(Zend_Log::TRACE)) {
Tinebase_Core::getLogger()->trace(__METHOD__ . ' ' . __LINE__ . ' User container: ' . print_r($container->toArray(), true));
}
$this->decorator->setCalendarProperties($container, $this->calendars[$calUri]);
// we shouldnt do the grants here as the caldav user file may not contain all users, so setting the grants wont work properly!
// use importAllCalendars to have the grants set
//$grants = $this->getCalendarGrants($calUri);
//Tinebase_Container::getInstance()->setGrants($container->getId(), $grants, TRUE, FALSE);
$start = 0;
$max = count($calICSs);
do {
$etags = array();
$requestEnd = '';
for ($i = $start; $i < $max && $i < $this->maxBulkRequest + $start; ++$i) {
if (in_array($calICSs[$i], $this->_icsBlacklist)) {
if (Tinebase_Core::isLogLevel(Zend_Log::INFO)) {
Tinebase_Core::getLogger()->info(__METHOD__ . ' ' . __LINE__ . ' Ignoring blacklisted ics: ' . $calICSs[$i]);
}
continue;
}
$requestEnd .= ' <a:href>' . $calICSs[$i] . "</a:href>\n";
}
$start = $i;
$requestEnd .= '</b:calendar-multiget>';
$result = $this->calDavRequest('REPORT', $calUri, self::getAllCalendarDataRequest . $requestEnd, 1);
foreach ($result as $key => $value) {
if (!isset($value['{urn:ietf:params:xml:ns:caldav}calendar-data'])) {
continue;
}
$data = $value['{urn:ietf:params:xml:ns:caldav}calendar-data'];
if (strpos($data, 'BEGIN:' . $this->skipComonent) !== false) {
if (Tinebase_Core::isLogLevel(Zend_Log::INFO)) {
Tinebase_Core::getLogger()->info(__METHOD__ . '::' . __LINE__ . ' Skipping ' . $this->skipComonent);
}
continue;
}
if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) {
Tinebase_Core::getLogger()->debug(__METHOD__ . ' ' . __LINE__ . ' Processing caldav record: ' . $key);
}
$name = explode('/', $key);
$name = end($name);
$id = $this->_getEventIdFromName($name);
try {
if ($update && in_array($id, $this->existingRecordIds[$calUri])) {
$webdavFrontend = new $this->webdavFrontend($container, $id);
// @todo move this to separate fn
if ($onlyCurrentUserOrganizer && $this->modelName === 'Calendar_Model_Event') {
// assert current user is organizer
if ($webdavFrontend->getRecord()->organizer && $webdavFrontend->getRecord()->organizer == Tinebase_Core::getUser()->contact_id) {
$webdavFrontend->put($data);
} else {
continue;
}
} else {
$webdavFrontend->put($data);
}
} else {
$webdavFrontend = call_user_func_array(array($this->webdavFrontend, 'create'), array($container, $name, $data, $onlyCurrentUserOrganizer));
}
if ($webdavFrontend) {
$etags[$webdavFrontend->getRecord()->getId()] = $value['{DAV:}getetag'];
}
} catch (Exception $e) {
if (Tinebase_Core::isLogLevel(Zend_Log::WARN)) {
Tinebase_Core::getLogger()->warn(__METHOD__ . '::' . __LINE__ . ' Could not create event from data: ' . $data);
}
Tinebase_Exception::log($e, false);
}
}
$this->_recordBackend->setETags($etags);
} while ($start < $max);
}
return true;
}