]> git.immae.eu Git - github/wallabag/wallabag.git/blobdiff - src/Wallabag/CoreBundle/Controller/RssController.php
store estimated reading time / filters on reading time
[github/wallabag/wallabag.git] / src / Wallabag / CoreBundle / Controller / RssController.php
index 86754e157e7b6ff0d1079b452d59209ab28d3660..0558c53b0fcbe4ba84572366523702a30aac35d7 100644 (file)
@@ -7,6 +7,8 @@ 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
 {
@@ -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,
@@ -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,
@@ -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,