/** * @param int $calendarId * @param string $sd * @param string $ed * @param string $base_path * @return array */ public function listItemsByRange($calendarId, $sd, $ed, $base_path) { $calendar = Sabre_CalDAV_Backend_Common::loadCalendarById($calendarId); $von = wdcal_php2MySqlTime($sd); $bis = wdcal_php2MySqlTime($ed); $timezoneOffset = date("P"); // @TODO Events, die früher angefangen haben, aber noch andauern $evs = q("SELECT *, CONVERT_TZ(`StartTime`, @@session.time_zone, '{$timezoneOffset}') StartTime, CONVERT_TZ(`EndTime`, @@session.time_zone, '{$timezoneOffset}') EndTime\n\t\t\tFROM %s%sjqcalendar WHERE `calendar_id` = %d AND `StartTime` between '%s' and '%s'", CALDAV_SQL_DB, CALDAV_SQL_PREFIX, IntVal($calendarId), dbesc($von), dbesc($bis)); $events = array(); foreach ($evs as $row) { $events[] = $this->jqcal2wdcal($row, $calendar, $base_path . $row["calendar_id"] . "/"); } return $events; }
/** * @param int $calendar_id * @return Sabre_CalDAV_Backend_Common * @throws Exception */ function wdcal_calendar_factory_by_id($calendar_id) { $calendar = Sabre_CalDAV_Backend_Common::loadCalendarById($calendar_id); return wdcal_calendar_factory($calendar["namespace"], $calendar["namespace_id"], $calendar["uri"], $calendar); }
/** * @param int $calendarId * @param string $date_from * @param string $date_to * @param string $base_path * @throws Sabre_DAV_Exception_NotFound * @return array */ public function listItemsByRange($calendarId, $date_from, $date_to, $base_path) { $calendar = Sabre_CalDAV_Backend_Common::loadCalendarById($calendarId); if ($calendar["namespace"] != CALDAV_NAMESPACE_PRIVATE) { throw new Sabre_DAV_Exception_NotFound(); } switch ($calendar["uri"]) { case CALDAV_FRIENDICA_MINE: $sql_where = " AND cid = 0"; break; case CALDAV_FRIENDICA_CONTACTS: $sql_where = " AND cid > 0"; break; default: throw new Sabre_DAV_Exception_NotFound(); } if ($date_from != "") { if (is_numeric($date_from)) { $sql_where .= " AND `finish` >= '" . date("Y-m-d H:i:s", $date_from) . "'"; } else { $sql_where .= " AND `finish` >= '" . dbesc($date_from) . "'"; } } if ($date_to != "") { if (is_numeric($date_to)) { $sql_where .= " AND `start` <= '" . date("Y-m-d H:i:s", $date_to) . "'"; } else { $sql_where .= " AND `start` <= '" . dbesc($date_to) . "'"; } } $ret = array(); $r = q("SELECT * FROM `event` WHERE `uid` = %d " . $sql_where . " ORDER BY `start`", IntVal($calendar["namespace_id"])); $a = get_app(); foreach ($r as $row) { $r = $this->jqcal2wdcal($row, $calendar, $a->get_baseurl()); $r["calendar_id"] = $calendar["id"]; $ret[] = $r; } return $ret; }