Newscoop\NewscoopBundle\Controller\BackendJournalistDashboardController::indexAction PHP Метод

indexAction() публичный Метод

public indexAction ( Request $request )
$request Symfony\Component\HttpFoundation\Request
    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);
    }
BackendJournalistDashboardController