<?php require_once "EventPDO.php"; require_once "Event.php"; if (isset($_POST['submit'])) { $eventid = $_POST["eventid"]; $eventtype = $_POST["eventtype"]; $eventsourcename = $_POST["eventsourcename"]; // echo $username . "<br>\n"; $eventsourcelink = $_POST["eventsourcelink"]; //echo $password ."<br>\n"; $eventsourcelinktype = $_POST["eventsourcelinktype"]; if ($eventtype != '' && $eventsourcename != '' && $eventsourcelink != '' && $eventsourcelinktype != '') { $eventPDO = new EventPDO(); $event = new Event(); $event->setEventId($eventid); $event->setEventType($eventtype); $event->setEventSourceName($eventsourcename); $event->setEventSourceLink($eventsourcelink); $event->setEventSourceLinkType($eventsourcelinktype); $eventPDO->updateEvent($event); echo "<html>"; echo "<head>"; echo "<meta http-equiv='Content-Type' content='text/html; charset=UTF-8' >"; echo "<link rel='stylesheet' type='text/css' href='menu.css'>"; echo "<title>News Portal - Edit Event Source</title>"; echo "</head>"; echo "<body>"; include "menu.php"; echo "Updated the Event Source </br>"; echo "<a href='Home.php'> Back to Home</a>";
public function getEvents() { $connection = parent::connect(); $selectSQL = "SELECT * FROM EVENT"; $rows = $connection->query($selectSQL); $events = array(); foreach ($rows as $row) { $event = new Event(); $event->setEventId($row[0]); $event->setEventType($row[1]); $event->setEventSourceName($row[2]); $event->setEventSourceLink($row[3]); $event->setEventSourceLinkType($row[4]); $events[] = $event; } parent::disconnect($connection); return $events; }
public function insert(Event $event, array $optionParams = null) { try { $event->getEventMeta(); } catch (Exception $e) { throw new Exception("Don't exists eventMeta data"); } $attendees = null; //option params filter if ($optionParams) { //attendees $attendeesParam = $optionParams["attendees"]; if ($attendeesParam && is_array($attendeesParam)) { $attendees = []; foreach ($attendeesParam as $attendee) { if (is_string($attendee) && filter_var($attendee, FILTER_VALIDATE_EMAIL)) { if ($attendee !== $event->getUserId()) { $attendees[] = ["email" => $attendee]; } } else { throw new Exception("attendees values should be a string whit valid email value"); } } } } $eventMeta = $event->getEventMeta(); //verify google access $myGoogleClient = get_my_google_client($event->getUserId()); if ($myGoogleClient) { //if exists Google access exits when record a GoogleCalendarEvent $dateStart = new DateTime($eventMeta->getDateStart()); $dateStart->add(new DateInterval("P{$eventMeta->getIntervalValue()}D")); $dateEnd = $dateStart->format("Y-m-d"); $googleCalendarEvent = new Google_Service_Calendar_Event(array("summary" => $event->getTitle(), "location" => $event->getLocation(), "description" => $event->getDescription(), "start" => array("dateTime" => "{$eventMeta->getDateStart()}T{$event->getStartHour()}", "timeZone" => "America/Lima"), "end" => array("dateTime" => "{$dateEnd}T{$event->getFinalHour()}", "timeZone" => "America/Lima"), "recurrence" => array("RRULE:FREQ=DAILY;COUNT=1"), "attendees" => $attendees ? $attendees : null, "reminders" => array("useDefault" => FALSE, "overrides" => array(array("method" => "email", "minutes" => 24 * 60), array("method" => "popup", "minutes" => 10))))); $client = $myGoogleClient->client; $service = new Google_Service_Calendar($client); $calendarId = 'primary'; $googleCalendarEventInserted = $service->events->insert($calendarId, $googleCalendarEvent, ["sendNotifications" => true]); $event->setGoogleCalendarEventId($googleCalendarEventInserted->id); } //record the event $eventDataToInsert = ["title" => $event->getTitle(), "description" => $event->getDescription(), "type" => $event->getType(), "location" => $event->getLocation(), "start_hour" => $event->getStartHour(), "final_hour" => $event->getFinalHour(), "color" => $event->getColor(), "status" => $event->getStatus(), "date_create" => $event->getDateCreate(), "user_id" => $event->getUserId(), "google_calendar_event_id" => $event->getGoogleCalendarEventId(), "notify_status" => $event->getNotifyStatus(), "parent_event_id" => $event->getParentEventId(), "calendar_id" => $event->getCalendarId()]; $eventDataInserted = insert("event", $eventDataToInsert); $event->setEventId($eventDataInserted["lastInsertId"]); //record the eventMeta $eventMeta->setEventId($event->getEventId()); $eventMetaDataToInsert = ["event_id" => $eventMeta->getEventId(), "date_start" => $eventMeta->getDateStart(), "interval_case" => $eventMeta->getIntervalCase(), "interval_value" => $eventMeta->getIntervalValue(), "week" => $eventMeta->getWeek(), "week_day" => $eventMeta->getWeekDay()]; $eventMetaDataInserted = insert("event_meta", $eventMetaDataToInsert); $eventMeta->setEventMetaId($eventMetaDataInserted["lastInsertId"]); //verify attendees if ($attendees) { $eventDataToInsert["google_calendar_event_id"] = null; $eventDataToInsert["notify_status"] = "pending"; $eventDataToInsert["parent_event_id"] = $event->getEventId(); foreach ($attendees as $attendee) { $eventDataToInsert["user_id"] = $attendee["email"]; $eventDataInsertedOfAttendee = insert("event", $eventDataToInsert); $eventMetaDataToInsert["event_id"] = $eventDataInsertedOfAttendee["lastInsertId"]; insert("event_meta", $eventMetaDataToInsert); } } return $event; }