/**
  * @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;
 }