/** * action list * * @return void */ public function listAction() { if (!$this->div->isLoggedUserInGroup($this->settings['participantGroupId'])) { $this->addFlashMessage($this->div->translate('message.noParticipant', $this->extensionName), '', \TYPO3\CMS\Core\Messaging\AbstractMessage::ERROR); $this->redirect('list'); } $oldestEventYear = $this->div->getOldestEventYear(); $currentYear = date("Y"); $index = 0; $statistics = array(); for ($i = $currentYear; $i >= $oldestEventYear; $i--) { $year = $i; $statistics[$index]['year'] = $year; $statistics[$index]['activeEvents'] = $this->eventRepository->findEventsOfYearByActive($year, true)->count(); $statistics[$index]['inactiveEvents'] = $this->eventRepository->findEventsOfYearByActive($year, false)->count(); $averageAccepts = $this->eventRepository->calculateAverageAcceptsPerEventByYear($year, true); $statistics[$index]['averageAccepts'] = $averageAccepts["0"]["average"]; $statistics[$index]['minimumAccepts'] = $averageAccepts["0"]["minimum"]; $statistics[$index]['maximumAccepts'] = $averageAccepts["0"]["maximum"]; $averageCancels = $this->eventRepository->calculateAverageAcceptsPerEventByYear($year, false); $statistics[$index]['averageCancels'] = $averageCancels["0"]["average"]; $statistics[$index]['minimumCancels'] = $averageCancels["0"]["minimum"]; $statistics[$index]['maximumCancels'] = $averageCancels["0"]["maximum"]; $tops = $this->eventRepository->topParticipantsByYear($year); for ($j = 0; $j <= count($tops) - 1; $j++) { $statistics[$index]['tops'][$j]['participantName'] = $tops[$j]["participantName"]; $statistics[$index]['tops'][$j]['eventsAccepted'] = $tops[$j]["eventsAccepted"]; } $index++; } $this->view->assign('statistics', $statistics); }