require_once 'vendor/autoload.php'; $body = file_get_contents('testing/samples/meeting_request.txt'); $ical = new iCalComponent(); $ical->ParseFrom($body); $props = $ical->GetPropertiesByPath('!VTIMEZONE/ATTENDEE'); if (count($props) == 1) { if (isset($props[0]->Parameters()["PARTSTAT"])) { printf("DOES THIS CAUSE ERROR? %s\n", $props[0]->Parameters()["PARTSTAT"]); } } // MODIFICATIONS // METHOD $ical->SetPValue("METHOD", "REPLY"); //ATTENDEE $ical->SetCPParameterValue("VEVENT", "ATTENDEE", "PARTSTAT", "ACCEPTED"); printf("%s\n", $ical->Render()); $mail = new Mail_mimepart(); $headers = array("MIME-version" => "1.0", "From" => $mail->encodeHeader("from", "Pedro Picapiedra <*****@*****.**>", "UTF-8"), "To" => $mail->encodeHeader("to", "Pablo Marmol <*****@*****.**>", "UTF-8"), "Date" => gmdate("D, d M Y H:i:s", time()) . " GMT", "Subject" => $mail->encodeHeader("subject", "This is a subject", "UTF-8"), "Content-class" => "urn:content-classes:calendarmessage", "Content-transfer-encoding" => "8BIT"); $mail = new Mail_mimepart($ical->Render(), array("content_type" => "text/calendar; method=REPLY; charset=UTF-8", "headers" => $headers)); $message = ""; $encoded_mail = $mail->encode(); foreach ($encoded_mail["headers"] as $k => $v) { $message .= $k . ": " . $v . "\r\n"; } $message .= "\r\n" . $encoded_mail["body"] . "\r\n"; printf("%s\n", $message); define('LOGLEVEL', LOGLEVEL_DEBUG); define('LOGUSERLEVEL', LOGLEVEL_DEVICEID); $props = $ical->GetPropertiesByPath("VTIMEZONE/TZID"); if (count($props) > 0) {
/** * Modify a text/calendar part to transform it in a reply * * @access private * @param $part MIME part * @param $response Response numeric value * @return string MIME text/calendar */ private function replyMeetingCalendar($part, $response) { $response_text = "ACCEPTED"; // 1 or default is ACCEPTED switch ($response) { case 1: $response_text = "ACCEPTED"; break; case 2: $response_text = "TENTATIVE"; break; case 3: $response_text = "DECLINED"; break; } $ical = new iCalComponent(); $ical->ParseFrom($part->body); $ical->SetPValue("METHOD", "REPLY"); $ical->SetCPParameterValue("VEVENT", "ATTENDEE", "PARTSTAT", $response_text); return $ical->Render(); }
/** * Modify a text/calendar part to transform it in a reply * * @access private * @param $part MIME part * @param $response Response numeric value * @param $condition_value string * @return string MIME text/calendar */ function reply_meeting_calendar($part, $response, $username) { $status_attendee = "ACCEPTED"; // 1 or default is ACCEPTED $status_event = "CONFIRMED"; switch ($response) { case 1: $status_attendee = "ACCEPTED"; $status_event = "CONFIRMED"; break; case 2: $status_attendee = $status_event = "TENTATIVE"; break; case 3: // We won't hit this case ever, because we won't create an event if we are rejecting it $status_attendee = "DECLINED"; $status_event = "CANCELLED"; break; } $ical = new iCalComponent(); $ical->ParseFrom($part->body); $ical->SetPValue("METHOD", "REPLY"); $ical->SetCPParameterValue("VEVENT", "STATUS", $status_event, null); // Update my information as attendee, but only mine $ical->SetCPParameterValue("VEVENT", "ATTENDEE", "PARTSTAT", $status_attendee, sprintf("MAILTO:%s", $username)); $ical->SetCPParameterValue("VEVENT", "ATTENDEE", "RSVP", null, sprintf("MAILTO:%s", $username)); return $ical->Render(); }
$body = file_get_contents('testing/samples/meeting_request.txt'); $ical = new iCalComponent(); $ical->ParseFrom($body); $props = $ical->GetPropertiesByPath("VEVENT/UID"); if (count($props) > 0) { $uid = $props[0]->Value(); printf("UID: %s\n", $uid); } else { printf("NO UID\n"); } $new_attendees = array(); $props = $ical->GetPropertiesByPath('VEVENT/ATTENDEE'); for ($i = 0; $i < count($props); $i++) { printf("Attendee Mailto '%s' Status '%s'\n", str_ireplace("MAILTO:", "", $props[$i]->Value()), $props[$i]->Parameters()["PARTSTAT"]); } $ical->SetCPParameterValue("VEVENT", "ATTENDEE", "RSVP", null); // MODIFICATIONS // METHOD $ical->SetPValue("METHOD", "REPLY"); //ATTENDEE $ical->SetCPParameterValue("VEVENT", "ATTENDEE", "PARTSTAT", "ACCEPTED"); $ical->SetCPParameterValue("VEVENT", "ATTENDEE", "PARTSTAT", "TENTATIVE", "MAILTO:user2@zpush.org"); printf("%s\n", $ical->Render()); $mail = new Mail_mimePart(); $headers = array("MIME-version" => "1.0", "From" => $mail->encodeHeader("from", "Pedro Picapiedra <*****@*****.**>", "UTF-8"), "To" => $mail->encodeHeader("to", "Pablo Marmol <*****@*****.**>", "UTF-8"), "Date" => gmdate("D, d M Y H:i:s", time()) . " GMT", "Subject" => $mail->encodeHeader("subject", "This is a subject", "UTF-8"), "Content-class" => "urn:content-classes:calendarmessage", "Content-transfer-encoding" => "8BIT"); $mail = new Mail_mimePart($ical->Render(), array("content_type" => "text/calendar; method=REPLY; charset=UTF-8", "headers" => $headers)); $message = ""; $encoded_mail = $mail->encode(); foreach ($encoded_mail["headers"] as $k => $v) { $message .= $k . ": " . $v . "\r\n"; }