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; }