/** * Loads and caches events of a specified type * Can only load 100 events at a time to avoid slowdowns - more will be loaded as a 'bottomless page' type thing * @param int $eventType Event type - see SWG constants */ private function loadEvents($eventType) { // Get the parameters set $factory = SWG::eventFactory($eventType); $startDate = $this->paramDateToValue(JRequest::getInt("startDateType"), JRequest::getString("startDateSpecify")); $endDate = $this->paramDateToValue(JRequest::getInt("endDateType"), JRequest::getString("endDateSpecify")); $factory->reset(); // Set specific factory parameters if ($eventType == Event::TypeSocial) { $factory->getNormal = true; $factory->getNewMember = true; } if ($eventType == Event::TypeWalk) { if (JRequest::getInt("walkProgramme") != 0) { switch (JRequest::getInt("walkProgramme")) { case 1: // Current published $factory->walkProgramme = WalkProgramme::getCurrentProgrammeID(); break; case 2: $factory->walkProgramme = WalkProgramme::getNextProgrammeID(); break; case 3: // Specify $factory->walkProgramme = JRequest::getInt("walkProgrammeSpecify"); break; } } } // Set standard/shared factory parameters $factory->startDate = $startDate; $factory->endDate = $endDate; $factory->limit = 100; $factory->offset = JRequest::getInt("offset", 0); $factory->reverse = JRequest::getBool("order"); $factory->showUnpublished = JRequest::getBool("unpublished", false); $factory->includeAttendees = true; $factory->includeAttendedBy = Jfactory::getUser()->id; if (JRequest::getBool("diaryMode", false)) { // Default is the current logged in user. // TODO: Allow view access to other people's diaries $factory->addAttendee(JFactory::getUser()->id); } // Get events from factories switch ($eventType) { case Event::TypeWalk: $this->numWalks = $factory->numEvents(); $this->walks = $factory->get(); break; case Event::TypeSocial: $this->numSocials = $factory->numEvents(); $this->socials = $factory->get(); break; case Event::TypeWeekend: $this->numWeekends = $factory->numEvents(); $this->weekends = $factory->get(); break; } }