/** * 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; }