X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=src%2FWallabag%2FCoreBundle%2FController%2FRssController.php;h=0558c53b0fcbe4ba84572366523702a30aac35d7;hb=34437f408c5b7b590aded6795d7ce01bfbfc7711;hp=14f1dcb2c081fc491a6ff9f9f7ce62a1205dca55;hpb=1a93ee423b072ec3bcb0c437cbf9b488bdea245c;p=github%2Fwallabag%2Fwallabag.git diff --git a/src/Wallabag/CoreBundle/Controller/RssController.php b/src/Wallabag/CoreBundle/Controller/RssController.php index 14f1dcb2..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->container->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->container->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->container->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,