public function generateArticleFilePieChartDataDoctrine($articles, $dates) { $articleFileStatRepo = $this->manager->getRepository('OjsAnalyticsBundle:ArticleFileStatistic'); $articleFileDownloads = []; $articleFileDownloads['mainChart'] = []; $articleFileDownloads['mainChartNames'] = []; $articleFileDownloads['charts'] = []; /** @var Article $article */ foreach ($articles as $article) { $key = $article->getId(); $allFilesStat = $articleFileStatRepo->getTotalDownloadsOfAllFiles($article, $dates); if (!empty($allFilesStat)) { $totalDownloadsOfAllFiles = $allFilesStat[0][1]; $articleFileDownloads['mainChart'][] = [$key, $totalDownloadsOfAllFiles]; $articleFileDownloads['mainChartNames'][] = [$key, $article->getTitle()]; foreach ($article->getArticleFiles() as $articleFile) { $fileStat = $articleFileStatRepo->getTotalDownloads($articleFile, $dates); if (!empty($fileStat)) { $totalDownloads = $fileStat[0][1]; $articleFileDownloads['charts'][$key][] = [$articleFile->getTitle(), $totalDownloads, 'articleFile' . $articleFile->getId()]; } } } } return $articleFileDownloads; }