public function updateApiFromEvent(Google_Service_Calendar_Event $event, Member $member, $publicFlag)
 {
     $conn = $this->getConnection();
     $conn->beginTransaction();
     try {
         $schedule = $this->findOneByApiIdUnique($event->id);
         if ('cancelled' === $event->status) {
             if ($schedule) {
                 $schedule->delete();
             }
             $conn->commit();
             return true;
         }
         if (!$schedule) {
             $schedule = new Schedule();
             $schedule->setApiIdUnique($event->id);
         } elseif ($event->etag === $schedule->api_etag) {
             $conn->rollback();
             return $schedule->id;
         }
         $schedule->setTitle($event->summary);
         $schedule->setBody($event->description);
         $schedule->setMember($member);
         $schedule->setPublicFlag($this->getEventPublicFlag($event, $publicFlag));
         if ($event->start->dateTime) {
             $startDateTime = new DateTime($event->start->dateTime);
             $schedule->setStartDate($startDateTime->format('Y-m-d'));
             $schedule->setStartTime($startDateTime->format('H:i:s'));
         } elseif ($event->start->date) {
             $schedule->setStartDate($event->start->date);
         }
         if ($event->end->dateTime) {
             $endDateTime = new DateTime($event->end->dateTime);
             $schedule->setEndDate($endDateTime->format('Y-m-d'));
             $schedule->setEndTime($endDateTime->format('H:i:s'));
         } elseif ($event->end->date) {
             $schedule->setStartDate($event->end->date);
         }
         $schedule->setApiEtag($event->etag);
         $schedule->save();
         ScheduleMemberTable::getInstance()->updateScheduleMember(array('schedule_id' => $schedule->id, 'member_id' => $schedule->member_id));
         foreach ($event->attendees as $attendee) {
             $memberId = opCalendarPluginToolkit::seekEmailAndGetMemberId($attendee->email);
             if (!$memberId) {
                 continue;
             }
             ScheduleMemberTable::getInstance()->updateScheduleMember(array('schedule_id' => $schedule->id, 'member_id' => $memberId));
         }
         $conn->commit();
     } catch (Exception $e) {
         $conn->rollback();
         throw $e;
     }
     return $schedule->id;
 }
示例#2
0
 /**
  * Populates the Venue object from the request
  * @return bean Venue
  */
 protected function getBeanFromRequest()
 {
     global $logger;
     $prgm = new Program($_REQUEST);
     $genre = new Genre();
     $genre->setOid($_REQUEST['primaryGenre']);
     $prgm->setPrimaryGenre($genre);
     if (isset($_REQUEST['defaultVenue'])) {
         $venue = new Venue();
         $venue->setOid($_REQUEST['defaultVenue']);
         $prgm->setDefaultVenue($venue);
         $prgm->setVenues(array($venue));
     }
     // categories
     $cats = array();
     if (isset($_REQUEST['audience'])) {
         foreach ($_REQUEST['audience'] as $oid) {
             $category = new Audience();
             $category->setOid($oid);
             $cats['audience'][] = $category;
         }
     }
     if (isset($_REQUEST['genre'])) {
         foreach ($_REQUEST['genre'] as $oid) {
             $category = new Genre();
             $category->setOid($oid);
             $cats['genre'][] = $category;
         }
     }
     if (isset($_REQUEST['series'])) {
         foreach ($_REQUEST['series'] as $oid) {
             $category = new Series();
             $category->setOid($oid);
             $cats['series'][] = $category;
         }
     }
     if (isset($cats['audience'])) {
         $logger->debug("Number of audience categories in the form: " . count($cats['audience']));
     }
     if (isset($cats['genre'])) {
         $logger->debug("Number of genre categories in the form: " . count($cats['genre']));
     }
     if (isset($cats['series'])) {
         $logger->debug("Number of series categories in the form: " . count($cats['series']));
     }
     if (isset($cats['audience']) || isset($cats['genre']) || isset($cats['series'])) {
         $prgm->setCategories($cats);
     }
     // related events
     $events = array();
     if (isset($_REQUEST['exhibition'])) {
         foreach ($_REQUEST['exhibition'] as $oid) {
             $exhibition = new Exhibition();
             $exhibition->setOid($oid);
             $events[] = $exhibition;
         }
     }
     if (isset($events)) {
         $logger->debug("Number of related exhibitions in the form: " . count($events));
         $prgm->setExhibitions($events);
     }
     $events = array();
     if (isset($_REQUEST['course'])) {
         foreach ($_REQUEST['course'] as $oid) {
             $course = new Course();
             $course->setOid($oid);
             $events[] = $course;
         }
     }
     if (isset($events)) {
         $logger->debug("Number of related courses in the form: " . count($events));
         $prgm->setCourses($events);
     }
     $activities = array();
     if (isset($_REQUEST['activityChanged']) && $_REQUEST['activityChanged']) {
         // parse delimited attributes as pipe-delimited '|' string
         $startTimes = explode('|', $_REQUEST['activityStartTime']);
         $endTimes = explode('|', $_REQUEST['activityEndTime']);
         $venues = explode('|', $_REQUEST['activityVenueList']);
         $status = explode('|', $_REQUEST['activityStatusList']);
         $tickets = explode('|', $_REQUEST['activityTicketList']);
         for ($index = 0; $index < count($venues); $index++) {
             $schedule = new Schedule();
             $stint = strtotime($startTimes[$index]);
             $etint = strtotime($endTimes[$index]);
             $schedule->setStartTime($stint);
             $schedule->setEndTime($etint);
             $venue = new Venue();
             $venue->setOid($venues[$index]);
             $activity = new Performance();
             $activity->setSchedule($schedule);
             $activity->setVenue($venue);
             $activity->setActivityStatus($status[$index]);
             $activity->setTicketCode($tickets[$index]);
             $activities[] = $activity;
         }
     }
     if (isset($activities)) {
         $logger->debug("Number of related performances in the form: " . count($activities));
         $prgm->setChildren($activities);
     }
     return $prgm;
 }
示例#3
0
 /**
  * A sample detail bean for use in rendering the template.
  * If a course is supplied, it will copy thevalues of the
  * given bean over the top of the demo bean.
  * @return
  */
 private function getDemoCourseDetail($crse)
 {
     require_once WEB_INF . '/beans/Performance.php';
     require_once WEB_INF . '/beans/Schedule.php';
     require_once WEB_INF . '/beans/Venue.php';
     global $logger;
     $logger->debug(get_class($this) . "::getDemoCourseDetail({$crse})");
     $bean = new Course();
     $bean->setTitle("Demo Course Detail Bean");
     $desc = "<p>This is a description of the course. Malian Grammy Award nominee Mamadou Diabate is a virtuoso kora player descended from a long line of Manding musician-storytellers. Dolor dignissim exerci feugiat. Lobortis ut, luptatum facilisis. Augue volutpat facilisis at, eum consequat adipiscing accumsan blandit molestie. </p>\n\t\t\t\t <p>Lobortis eros at hendrerit luptatum consequat feugiat ut facilisi commodo esse autem consequat at ex ullamcorper hendrerit wisi, commodo nostrud nisl wisi eum autem eu esse eu iriure. Tation, magna ad nibh at eum, ea praesent eum lorem eu erat enim commodo dolore?</p>\n \t\t\t\t <p>Crisare enim sed ex eros hendrerit blandit illum qui sciurus autem nulla enim luptatum. Quis enim eum feugait elit blandit, hendrerit consequat, velit ut luptatum nostrud wisi ea. Dignissim consequat dolore aliquam eum volutpat, wisi dolore et exerci nisl veniam luptatum ut ullamcorper consequatvel nulla delenit.</p>\n\t\t\t\t";
     $bean->setDescription($desc);
     $bean->setPrimaryGenre("Music");
     // Performances
     $perf = new Performance();
     $schd = new Schedule();
     $schd->setStartTime(time());
     $perf->setSchedule($schd);
     $logger->debug("Performance time: " . $perf->getSchedule()->getStartTime());
     $perf->setTicketCode("21");
     $bean->setChildren(array($perf));
     $logger->debug("Number of set performaces: " . count($bean->getChildren()));
     // Venues
     $v1 = new Venue();
     $v1->setName('Hurd Gallery');
     $bean->setDefaultVenue($v1);
     if (get_class($crse) == 'Course') {
         $crse->setPerformances(null);
         $option = new CopyBeanOption();
         $option->setIgnoreNullValues(true);
         BeanUtil::copyBean($crse, $bean, $option);
     }
     return $bean;
 }
示例#4
0
 /**
  * Instantiates an Exhibition bean object and copies all
  * valid incoming form elements to the bean object
  * @return The valid Exhibition bean
  */
 protected function getBeanFromRequest()
 {
     global $logger;
     $logger->debug(get_class($this) . "::getBeanFromRequest()");
     $service = $this->getEventService();
     // TODO: Add validator here
     $exhibit = new Exhibition($_REQUEST);
     $logger->debug("exhibition object: {$exhibit}");
     if (isset($_REQUEST['displayOrder']) && intval($_REQUEST['displayOrder']) > 0) {
         $exhibit->setDisplayOrder($_REQUEST['displayOrder']);
     }
     // Format the times
     $logger->debug("Start Time: " . $_REQUEST['startMonth'] . "," . $_REQUEST['startDay'] . "," . $_REQUEST['startYear']);
     $startTime = mktime(0, 0, 0, $_REQUEST['startMonth'], $_REQUEST['startDay'], $_REQUEST['startYear']);
     $logger->debug("Start Time (mktime)" . $startTime);
     // find out if this is a recurring event
     $endTime = mktime(0, 0, 0, $_REQUEST['endMonth'], $_REQUEST['endDay'], $_REQUEST['endYear']);
     if ($_REQUEST['close_type'] == 'ongoing') {
         $endTime = 0;
     }
     // load the schedule
     $schedule = new Schedule();
     if (isset($_REQUEST['scheduleOid'])) {
         $schedule->setOid(intval($_REQUEST['scheduleOid']));
     }
     $schedule->setStartTime($startTime);
     $schedule->setEndTime($endTime);
     $exhibit->setSchedule($schedule);
     // venues
     if (isset($_REQUEST['venue'])) {
         $venues = array();
         foreach ($_REQUEST['venue'] as $oid) {
             $venue = new Venue();
             $venue->setOid($oid);
             $venues[] = $venue;
         }
         $logger->debug("Number of venues in the form: " . count($venues));
         $exhibit->setVenues($venues);
     }
     // categories
     $cats = array();
     if (isset($_REQUEST['audience'])) {
         foreach ($_REQUEST['audience'] as $oid) {
             $category = new Audience();
             $category->setOid($oid);
             $cats['audience'][] = $category;
         }
     }
     if (isset($_REQUEST['genre'])) {
         foreach ($_REQUEST['genre'] as $oid) {
             $category = new Genre();
             $category->setOid($oid);
             $cats['genre'][] = $category;
         }
     }
     if (isset($cats['audience'])) {
         $logger->debug("Number of audience categories in the form: " . count($cats['audience']));
     }
     if (isset($cats['genre'])) {
         $logger->debug("Number of genre categories in the form: " . count($cats['genre']));
     }
     if (isset($cats['audience']) || isset($cats['genre'])) {
         $exhibit->setCategories($cats);
     }
     // related events
     $events = array();
     if (isset($_REQUEST['program'])) {
         foreach ($_REQUEST['program'] as $oid) {
             $program = new Program();
             $program->setOid($oid);
             $events[] = $program;
         }
     }
     if (isset($events)) {
         $logger->debug("Number of related programs in the form: " . count($events));
         $exhibit->setPrograms($events);
     }
     $events = array();
     if (isset($_REQUEST['course'])) {
         foreach ($_REQUEST['course'] as $oid) {
             $course = new Course();
             $course->setOid($oid);
             $events[] = $course;
         }
     }
     if (isset($events)) {
         $logger->debug("Number of related courses in the form: " . count($events));
         $exhibit->setCourses($events);
     }
     // gallery
     if (isset($_REQUEST['gallery'])) {
         $exhibit->setGallery($_REQUEST['gallery']);
     }
     // artists
     if (isset($_REQUEST['person'])) {
         $persons = array();
         foreach ($_REQUEST['person'] as $oid) {
             $person = new Artist();
             $person->setOid($oid);
             $persons[] = $person;
         }
         $logger->debug("Number of persons in the form: " . count($persons));
         $exhibit->setArtists($persons);
     }
     // artifacts
     if (isset($_REQUEST['artifact'])) {
         $artifacts = array();
         foreach ($_REQUEST['artifact'] as $id) {
             $artifacts[] = $id;
         }
         $artlist = implode(",", $artifacts);
         $logger->debug("Number of persons in the form: " . count($artifacts));
         $exhibit->setArtifacts($artlist);
     }
     return $exhibit;
 }