public static function getCalendarDetails($className, $classId) { $calendar = new Kalender(); $ids = preg_split("/:/", $classId); $server = anyC::getFirst("xCal", "xCalID", $ids[0]); $xmlBuffer = xCalUtil::getSimpleXmlByXCal($server->A("xCalCache")); foreach ($xmlBuffer->vcalendar->vevent as $event) { if ((string) $event->uid != $ids[1]) { continue; } // Konvertierung der Zeitstempel $match = array(); preg_match("/^(\\d{4})(\\d{2})(\\d{2})T(\\d{2})(\\d{2})(\\d{2})Z\$/", (string) $event->dtstart, $match); $startTimestamp = gmmktime($match[4], $match[5], $match[6], $match[2], $match[3], $match[1]); $match = array(); preg_match("/^(\\d{4})(\\d{2})(\\d{2})T(\\d{2})(\\d{2})(\\d{2})Z\$/", (string) $event->dtend, $match); $endTimestamp = gmmktime($match[4], $match[5], $match[6], $match[2], $match[3], $match[1]); $calendarEvent = new KalenderEvent("mxCalGUI", $server->A("xCalID") . ":" . (string) $event->uid, $calendar->formatDay($startTimestamp), $calendar->formatTime($startTimestamp), (string) $event->summary); $description = preg_replace("/\n|\r/", "<br>", (string) $event->description); $calendarEvent->summary($description); return $calendarEvent; } }
/** * Gibt die xCal-Repräsentation dieses Objektes zurück. * @return DOMElement */ public function toXCal() { $xCalData = new xCalDataEvent(); #$dateTime = new DateTime(); $xCalData->setUid($this->UID); $xCalData->setSummary($this->title); // TODO: Wiederholende Termine über when holen --> Wiederholungen über xCal angeben // Parameter vermutlich Timestamp /*if (is_null($this->time)) { $dtStart = $this->day; // TODO: Testen ob Timestamp oder nicht $xCalData->setDtStartValue(xCalDataEvent::DTVALUE_DATE); $xCalData->setDtStart(gmdate("Ymd", $dtStart)); } else {*/ $dtStart = Kalender::parseDay($this->day) + Kalender::parseTime($this->time) - 60; #echo date("dmY His", $dtStart).": ".$this->title."<br />"; // TODO: Test des Formats // parseTime parseDay Kalender-Klasse $xCalData->setDtStartValue(xCalDataEvent::DTVALUE_DATETIME); $xCalData->setDtStart(gmdate("Ymd", $dtStart) . "T" . gmdate("His", $dtStart) . "Z"); #} /*if (is_null($this->endTime)) { $dtEnd = $this->endDay; $xCalData->setDtEnd(gmdate("Ymd", $dtEnd)); $xCalData->setDtEndValue(xCalDataEvent::DTVALUE_DATE);*/ #} else { $dtEnd = Kalender::parseDay($this->endDay) + Kalender::parseTime($this->endTime) - 60; $xCalData->setDtEnd(gmdate("Ymd", $dtEnd) . "T" . gmdate("His", $dtEnd) . "Z"); $xCalData->setDtEndValue(xCalDataEvent::DTVALUE_DATETIME); #} #$dateTime->setTimestamp($dtStart); return xCalUtil::getXCalEventByXCalDataEvent($xCalData); }
die("incorrect date format"); } if (!preg_match("/^[0-9]*\$/i", $cutoffDateFuture)) { die("incorrect date format"); } if (empty($cutoffDatePast)) { $cutoffDatePast = time() - 14 * 24 * 3600; } if (empty($cutoffDateFuture)) { $cutoffDateFuture = time() + 84 * 24 * 3600; } if (isset($_GET["auth_token"])) { if (file_exists($absolutePathToPhynx . "/ubiquitous/Sync/mSync.class.php")) { require_once $absolutePathToPhynx . "/ubiquitous/Sync/mSync.class.php"; } $userToken = $_GET["auth_token"]; if (!preg_match("/^[a-z0-9]+\$/i", $userToken)) { die("incorrect login information"); } $user = mSync::getUserByToken($userToken); $E->login($user->A("username"), $user->A("SHApassword")); } else { $E->login($_GET["username"], $_GET["password"]); } $calendar = mTodoGUI::getCalendarData($cutoffDatePast, $cutoffDateFuture); $events = array(); foreach ($calendar->getEventsList() as $calendarEvent) { $events[] = $calendarEvent->toXCal(); } echo xCalUtil::getXCal($events); $E->cleanUp();