Example #1
0
 /**
  * Compiles the list of events and activities for the calendar
  * @param object $mainframe The Joomla specific page object
  * @return bean summary page model bean
  */
 private function setSummaries($mainframe)
 {
     global $mosConfig_live_site, $logger;
     $logger->debug(get_class($this) . "::setSummaries()");
     $ss = $this->getScheduleService();
     $model = new SummaryPageModel();
     $cal = $this->getBeanFromRequest();
     $start = CalendarForm::getMonthStart($cal);
     $end = CalendarForm::getMonthEnd($cal);
     if (FrontCalendarAction::USE_PROMOS) {
         $promos = $this->getPromos();
         $list = array();
         for ($i = 0; $i < count($promos); $i++) {
             $promo = $promos[$i];
             $list[] = $promo;
         }
         $model->setAnnouncement($list);
     }
     // get the list of schedules for their oids
     $schedules = $ss->getSchedulesForRange($start, $end);
     // get the events for the scheudles in the range
     $es = $this->getEventService();
     $events = array();
     $cals = array();
     foreach ($schedules as $sched) {
         $logger->debug("Finding event by schedule id: " . $sched->getOid());
         $event = $es->getEventBySchedule($sched);
         $logger->debug("The event has a title of: " . $event->getTitle());
         // only add published events
         if ($event->getPubState() == 'Published') {
             // start time
             if ($sched->getStartTime() > $start) {
                 $events[] = $event;
                 if ($this->isFilter($event)) {
                     $cals[] = $this->setCalendarEntry($sched, $event);
                 }
             }
             // exhibition end time
             if ($event->getScope() == Event::EXHIBITION && $sched->getEndTime() < $end) {
                 $events[] = $event;
                 if ($this->isFilter($event)) {
                     $cals[] = $this->setCalendarEntry($sched, $event, true);
                 }
             }
         }
     }
     $logger->debug("Number of events: " . count($events));
     $model->setSelected($cal);
     $model->setList($cals);
     $model->setOptions($this->getOptions($events));
     return $model;
 }