public function indexAction(Request $request)
{
$em = $this->get('em');
$userService = $this->get('user');
$author = $userService->getCurrentUser()->getAuthor();
$commentsPerDay = $em->getRepository('Newscoop\\Entity\\Comment')->getCommentsForAuthorArticlesPerDay($author)->getArrayResult();
foreach ($commentsPerDay as $key => $value) {
$commentsPerDay[$value['date']] = $value;
unset($commentsPerDay[$key]);
}
$articlesPerDay = $em->getRepository('Newscoop\\Entity\\Article')->getArticlesForAuthorPerDay($author)->getArrayResult();
foreach ($articlesPerDay as $key => $value) {
$articlesPerDay[$value['date']] = $value;
unset($articlesPerDay[$key]);
}
$begin = new \DateTime('NOW');
$begin->modify('-60 days');
$end = new \DateTime('NOW');
$end->modify('+1 day');
$interval = \DateInterval::createFromDateString('1 day');
$period = new \DatePeriod($begin, $interval, $end);
$lineWidgetData = array();
foreach ($period as $dt) {
$element = array('date' => $dt->format("Y-m-d"));
if (array_key_exists($dt->format("Y-m-d"), $commentsPerDay)) {
$element['comments'] = $commentsPerDay[$dt->format("Y-m-d")]['number'];
} else {
$element['comments'] = 0;
}
if (array_key_exists($dt->format("Y-m-d"), $articlesPerDay)) {
$element['articles'] = $articlesPerDay[$dt->format("Y-m-d")]['number'];
} else {
$element['articles'] = 0;
}
$lineWidgetData[] = $element;
}
return array('lineWidgetData' => $lineWidgetData);
}