IntVal($obj["id"]), "calendardata" => $obj["calendardata"], "uri" => $obj["uri"], "lastmodified" => $obj["lastmodified"], "calendarid" => $calendarId, "etag" => $obj["etag"], "size" => IntVal($obj["size"]), ); } return $ret; } /** * Returns information from a single calendar object, based on it's object * uri. * * The returned array must have the same keys as getCalendarObjects. The * 'calendardata' object is required here though, while it's not required * for getCalendarObjects. * * @param string $calendarId * @param string $objectUri * @throws Sabre_DAV_Exception_FileNotFound * @return array */ function getCalendarObject($calendarId, $objectUri) { $x = explode("-", $calendarId); $o = q("SELECT * FROM %s%scalendarobjects WHERE `namespace` = %d AND `namespace_id` = %d AND `uri` = '%s'", CALDAV_SQL_DB, CALDAV_SQL_PREFIX, IntVal($x[0]), IntVal($x[1]), dbesc($objectUri)); if (count($o) > 0) { $o[0]["calendarid"] = $calendarId; $o[0]["calendardata"] = str_ireplace("Europe/Belgrade", "Europe/Berlin", $o[0]["calendardata"]); return $o[0]; } else throw new Sabre_DAV_Exception_FileNotFound($calendarId . " / " . $objectUri); } /** * Creates a new calendar object. * * @param string $calendarId * @param string $objectUri * @param string $calendarData * @return null|string|void */ function createCalendarObject($calendarId, $objectUri, $calendarData) { $x = explode("-", $calendarId); q("INSERT INTO %s%scalendarobjects (`namespace`, `namespace_id`, `uri`, `calendardata`, `lastmodified`, `etag`, `size`) VALUES (%d, %d, '%s', '%s', NOW(), '%s', %d)", CALDAV_SQL_DB, CALDAV_SQL_PREFIX, IntVal($x[0]), IntVal($x[1]), dbesc($objectUri), addslashes($calendarData), md5($calendarData), strlen($calendarData) ); $this->increaseCalendarCtag($x[0], $x[1]); renderCalDavEntry_uri($objectUri); } /** * Updates an existing calendarobject, based on it's uri. * * @param string $calendarId * @param string $objectUri * @param string $calendarData * @return null|string|void */ function updateCalendarObject($calendarId, $objectUri, $calendarData) { $x = explode("-", $calendarId); q("UPDATE %s%scalendarobjects SET `calendardata` = '%s', `lastmodified` = NOW(), `etag` = '%s', `size` = %d WHERE `namespace` = %d AND `namespace_id` = %d AND `uri` = '%s'", CALDAV_SQL_DB, CALDAV_SQL_PREFIX, dbesc($calendarData), md5($calendarData), strlen($calendarData), IntVal($x[0]), IntVal($x[1]), dbesc($objectUri)); $this->increaseCalendarCtag($x[0], $x[1]); renderCalDavEntry_uri($objectUri); } /** * Deletes an existing calendar object. * * @param string $calendarId * @param string $objectUri * @return void */ function deleteCalendarObject($calendarId, $objectUri) { $x = explode("-", $calendarId); q("DELETE FROM %s%scalendarobjects WHERE `namespace` = %d AND `namespace_id` = %d AND `uri` = '%s'", CALDAV_SQL_DB, CALDAV_SQL_PREFIX, IntVal($x[0]), IntVal($x[1]), dbesc($objectUri) ); $this->increaseCalendarCtag($x[0], $x[1]); renderCalDavEntry_uri($objectUri); } }