diff options
Diffstat (limited to 'src/Wallabag/CoreBundle/Controller/RssController.php')
-rw-r--r-- | src/Wallabag/CoreBundle/Controller/RssController.php | 44 |
1 files changed, 24 insertions, 20 deletions
diff --git a/src/Wallabag/CoreBundle/Controller/RssController.php b/src/Wallabag/CoreBundle/Controller/RssController.php index e84044b1..db0a8f9a 100644 --- a/src/Wallabag/CoreBundle/Controller/RssController.php +++ b/src/Wallabag/CoreBundle/Controller/RssController.php | |||
@@ -21,40 +21,46 @@ class RssController extends Controller | |||
21 | /** | 21 | /** |
22 | * Shows unread entries for current user. | 22 | * Shows unread entries for current user. |
23 | * | 23 | * |
24 | * @Route("/{username}/{token}/unread.xml", name="unread_rss", defaults={"_format"="xml"}) | 24 | * @Route("/feed/{username}/{token}/unread/{page}", name="unread_rss", defaults={"page": 1}) |
25 | * @ParamConverter("user", class="WallabagUserBundle:User", converter="username_rsstoken_converter") | 25 | * @ParamConverter("user", class="WallabagUserBundle:User", converter="username_rsstoken_converter") |
26 | * | 26 | * |
27 | * @param User $user | ||
28 | * @param $page | ||
27 | * @return \Symfony\Component\HttpFoundation\Response | 29 | * @return \Symfony\Component\HttpFoundation\Response |
28 | */ | 30 | */ |
29 | public function showUnreadRSSAction(Request $request, User $user) | 31 | public function showUnreadRSSAction(User $user, $page) |
30 | { | 32 | { |
31 | return $this->showEntries('unread', $user, $request->query->get('page', 1)); | 33 | return $this->showEntries('unread', $user, $page); |
32 | } | 34 | } |
33 | 35 | ||
34 | /** | 36 | /** |
35 | * Shows read entries for current user. | 37 | * Shows read entries for current user. |
36 | * | 38 | * |
37 | * @Route("/{username}/{token}/archive.xml", name="archive_rss", defaults={"_format"="xml"}) | 39 | * @Route("/feed/{username}/{token}/archive/{page}", name="archive_rss", defaults={"page": 1}) |
38 | * @ParamConverter("user", class="WallabagUserBundle:User", converter="username_rsstoken_converter") | 40 | * @ParamConverter("user", class="WallabagUserBundle:User", converter="username_rsstoken_converter") |
39 | * | 41 | * |
42 | * @param User $user | ||
43 | * @param $page | ||
40 | * @return \Symfony\Component\HttpFoundation\Response | 44 | * @return \Symfony\Component\HttpFoundation\Response |
41 | */ | 45 | */ |
42 | public function showArchiveRSSAction(Request $request, User $user) | 46 | public function showArchiveRSSAction(User $user, $page) |
43 | { | 47 | { |
44 | return $this->showEntries('archive', $user, $request->query->get('page', 1)); | 48 | return $this->showEntries('archive', $user, $page); |
45 | } | 49 | } |
46 | 50 | ||
47 | /** | 51 | /** |
48 | * Shows starred entries for current user. | 52 | * Shows starred entries for current user. |
49 | * | 53 | * |
50 | * @Route("/{username}/{token}/starred.xml", name="starred_rss", defaults={"_format"="xml"}) | 54 | * @Route("/feed/{username}/{token}/starred/{page}", name="starred_rss", defaults={"page": 1}) |
51 | * @ParamConverter("user", class="WallabagUserBundle:User", converter="username_rsstoken_converter") | 55 | * @ParamConverter("user", class="WallabagUserBundle:User", converter="username_rsstoken_converter") |
52 | * | 56 | * |
57 | * @param User $user | ||
58 | * @param $page | ||
53 | * @return \Symfony\Component\HttpFoundation\Response | 59 | * @return \Symfony\Component\HttpFoundation\Response |
54 | */ | 60 | */ |
55 | public function showStarredRSSAction(Request $request, User $user) | 61 | public function showStarredRSSAction(User $user, $page) |
56 | { | 62 | { |
57 | return $this->showEntries('starred', $user, $request->query->get('page', 1)); | 63 | return $this->showEntries('starred', $user, $page); |
58 | } | 64 | } |
59 | 65 | ||
60 | /** | 66 | /** |
@@ -179,19 +185,17 @@ class RssController extends Controller | |||
179 | $entries->setCurrentPage((int) $page); | 185 | $entries->setCurrentPage((int) $page); |
180 | } catch (OutOfRangeCurrentPageException $e) { | 186 | } catch (OutOfRangeCurrentPageException $e) { |
181 | if ($page > 1) { | 187 | if ($page > 1) { |
182 | return $this->redirect($url . '?page=' . $entries->getNbPages(), 302); | 188 | return $this->redirect($url.'/'.$entries->getNbPages()); |
183 | } | 189 | } |
184 | } | 190 | } |
185 | 191 | ||
186 | return $this->render( | 192 | return $this->render('@WallabagCore/themes/common/Entry/entries.xml.twig', [ |
187 | '@WallabagCore/themes/common/Entry/entries.xml.twig', | 193 | 'type' => $type, |
188 | [ | 194 | 'url' => $url, |
189 | 'url_html' => $this->generateUrl($type, [], UrlGeneratorInterface::ABSOLUTE_URL), | 195 | 'entries' => $entries, |
190 | 'type' => $type, | 196 | 'user' => $user->getUsername(), |
191 | 'url' => $url, | 197 | 'domainName' => $this->getParameter('domain_name'), |
192 | 'entries' => $entries, | 198 | 'version' => $this->getParameter('wallabag_core.version'), |
193 | ], | 199 | ]); |
194 | new Response('', 200, ['Content-Type' => 'application/rss+xml']) | ||
195 | ); | ||
196 | } | 200 | } |
197 | } | 201 | } |