calculateDataForLastDays(); return [ 'labels' => $this->labels, 'datasets' => [ [ 'label' => $this->getLanguageService()->sL('LLL:EXT:dashboard/Resources/Private/Language/locallang.xlf:widgets.sysLogErrors.chart.dataSet.0'), 'backgroundColor' => WidgetApi::getDefaultChartColors()[0], 'border' => 0, 'data' => $this->data, ], ], ]; } protected function getNumberOfErrorsInPeriod(int $start, int $end): int { $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('sys_log'); return (int)$queryBuilder ->count('*') ->from('sys_log') ->where( $queryBuilder->expr()->eq( 'type', $queryBuilder->createNamedParameter(SystemLogType::ERROR, Connection::PARAM_INT) ), $queryBuilder->expr()->gte( 'tstamp', $queryBuilder->createNamedParameter($start, Connection::PARAM_INT) ), $queryBuilder->expr()->lte( 'tstamp', $queryBuilder->createNamedParameter($end, Connection::PARAM_INT) ) ) ->executeQuery() ->fetchOne(); } protected function calculateDataForLastDays(): void { $format = $GLOBALS['TYPO3_CONF_VARS']['SYS']['ddmmyy'] ?: 'Y-m-d'; for ($daysBefore = $this->days; $daysBefore >= 0; $daysBefore--) { $this->labels[] = date($format, (int)strtotime('-' . $daysBefore . ' day')); $startPeriod = (int)strtotime('-' . $daysBefore . ' day 0:00:00'); $endPeriod = (int)strtotime('-' . $daysBefore . ' day 23:59:59'); $this->data[] = $this->getNumberOfErrorsInPeriod($startPeriod, $endPeriod); } } protected function getLanguageService(): LanguageService { return $GLOBALS['LANG']; } }