Newscoop\GimmeBundle\Controller\ArticlesListController::getPlaylistsArticlesAction PHP Method

getPlaylistsArticlesAction() public method

Returns array with articles under "items" key and requested list "id" and "name"
public getPlaylistsArticlesAction ( Request $request, $id )
$request Symfony\Component\HttpFoundation\Request
    public function getPlaylistsArticlesAction(Request $request, $id)
    {
        $em = $this->container->get('em');
        $paginatorService = $this->get('newscoop.paginator.paginator_service');
        $paginatorService->setUsedRouteParams(array('id' => $id));
        $playlist = $em->getRepository('Newscoop\\Entity\\Playlist')->findOneBy(array('id' => $id));
        if (!$playlist) {
            throw new NotFoundHttpException('Result was not found.');
        }
        $onlyPublished = true;
        try {
            $user = $this->container->get('user')->getCurrentUser();
            if ($user && $user->isAdmin()) {
                $onlyPublished = false;
            }
        } catch (AuthenticationException $e) {
        }
        $playlistArticles = $em->getRepository('Newscoop\\Entity\\Playlist')->articles($playlist, array(), true, null, null, $onlyPublished, true);
        $paginator = $this->get('newscoop.paginator.paginator_service');
        $articles = $paginator->paginate($playlistArticles, array('distinct' => false));
        foreach ($articles['items'] as $key => $playlistArticle) {
            $articles['items'][$key] = $em->getRepository('Newscoop\\Entity\\Article')->getArticle($playlistArticle->getArticleNumber(), $playlistArticle->getArticleLanguage())->getSingleResult();
        }
        $allItems = array_merge(array('id' => $playlist->getId(), 'name' => $playlist->getName(), 'notes' => $playlist->getNotes(), 'maxItems' => $playlist->getMaxItems(), 'articlesModificationTime' => $playlist->getArticlesModificationTime()), $articles);
        return $allItems;
    }