Ojs\AnalyticsBundle\Utils\GraphDataGenerator::generateArticleFilePieChartDataDoctrine PHP Method

generateArticleFilePieChartDataDoctrine() public method

Returns an array which can be passed to C3.js for pie chart graph creation
public generateArticleFilePieChartDataDoctrine ( array $articles, array $dates ) : array
$articles array
$dates array
return array
    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;
    }