Example #1
0
<?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>";
Example #2
0
 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;
 }