X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;ds=sidebyside;f=src%2FWallabag%2FCoreBundle%2FController%2FRssController.php;h=0558c53b0fcbe4ba84572366523702a30aac35d7;hb=34437f408c5b7b590aded6795d7ce01bfbfc7711;hp=f2f8dd650f41a1adcf460ab66f4fbee8cbe154f7;hpb=0c83fd5994861efa728097dd151c994796c39ae1;p=github%2Fwallabag%2Fwallabag.git diff --git a/src/Wallabag/CoreBundle/Controller/RssController.php b/src/Wallabag/CoreBundle/Controller/RssController.php index f2f8dd65..0558c53b 100644 --- a/src/Wallabag/CoreBundle/Controller/RssController.php +++ b/src/Wallabag/CoreBundle/Controller/RssController.php @@ -7,11 +7,13 @@ use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Wallabag\CoreBundle\Entity\User; use Wallabag\CoreBundle\Entity\Entry; +use Pagerfanta\Adapter\DoctrineORMAdapter; +use Pagerfanta\Pagerfanta; class RssController extends Controller { /** - * Shows unread entries for current user + * Shows unread entries for current user. * * @Route("/{username}/{token}/unread.xml", name="unread_rss", defaults={"_format"="xml"}) * @ParamConverter("user", class="WallabagCoreBundle:User", converter="username_rsstoken_converter") @@ -20,14 +22,18 @@ class RssController extends Controller */ public function showUnreadAction(User $user) { - $entries = $this->getDoctrine() + $qb = $this->getDoctrine() ->getRepository('WallabagCoreBundle:Entry') ->findUnreadByUser( - $user->getId(), - 0, - $user->getConfig()->getRssLimit() ?: $this->getContainer()->getParameter('rss_limit') + $user->getId() ); + $pagerAdapter = new DoctrineORMAdapter($qb->getQuery()); + $entries = new Pagerfanta($pagerAdapter); + + $perPage = $user->getConfig()->getRssLimit() ?: $this->container->getParameter('rss_limit'); + $entries->setMaxPerPage($perPage); + return $this->render('WallabagCoreBundle:Entry:entries.xml.twig', array( 'type' => 'unread', 'entries' => $entries, @@ -35,7 +41,7 @@ class RssController extends Controller } /** - * Shows read entries for current user + * Shows read entries for current user. * * @Route("/{username}/{token}/archive.xml", name="archive_rss") * @ParamConverter("user", class="WallabagCoreBundle:User", converter="username_rsstoken_converter") @@ -44,14 +50,18 @@ class RssController extends Controller */ public function showArchiveAction(User $user) { - $entries = $this->getDoctrine() + $qb = $this->getDoctrine() ->getRepository('WallabagCoreBundle:Entry') ->findArchiveByUser( - $user->getId(), - 0, - $user->getConfig()->getRssLimit() ?: $this->getContainer()->getParameter('rss_limit') + $user->getId() ); + $pagerAdapter = new DoctrineORMAdapter($qb->getQuery()); + $entries = new Pagerfanta($pagerAdapter); + + $perPage = $user->getConfig()->getRssLimit() ?: $this->container->getParameter('rss_limit'); + $entries->setMaxPerPage($perPage); + return $this->render('WallabagCoreBundle:Entry:entries.xml.twig', array( 'type' => 'archive', 'entries' => $entries, @@ -59,7 +69,7 @@ class RssController extends Controller } /** - * Shows starred entries for current user + * Shows starred entries for current user. * * @Route("/{username}/{token}/starred.xml", name="starred_rss") * @ParamConverter("user", class="WallabagCoreBundle:User", converter="username_rsstoken_converter") @@ -68,14 +78,18 @@ class RssController extends Controller */ public function showStarredAction(User $user) { - $entries = $this->getDoctrine() + $qb = $this->getDoctrine() ->getRepository('WallabagCoreBundle:Entry') ->findStarredByUser( - $user->getId(), - 0, - $user->getConfig()->getRssLimit() ?: $this->getContainer()->getParameter('rss_limit') + $user->getId() ); + $pagerAdapter = new DoctrineORMAdapter($qb->getQuery()); + $entries = new Pagerfanta($pagerAdapter); + + $perPage = $user->getConfig()->getRssLimit() ?: $this->container->getParameter('rss_limit'); + $entries->setMaxPerPage($perPage); + return $this->render('WallabagCoreBundle:Entry:entries.xml.twig', array( 'type' => 'starred', 'entries' => $entries,