コード例 #1
0
ファイル: RSSFeeds.php プロジェクト: romainneutron/Phraseanet
 public function connect(Application $app)
 {
     $app['controller.rss-feeds'] = $this;
     $controllers = $app['controllers_factory'];
     $controllers->get('/feed/{id}/{format}/', function (Application $app, $id, $format) {
         $feed = $app['EM']->getRepository('Phraseanet:Feed')->find($id);
         if (null === $feed) {
             $app->abort(404, 'Feed not found');
         }
         if (!$feed->isPublic()) {
             $app->abort(403, 'Forbidden');
         }
         $request = $app['request'];
         $page = (int) $request->query->get('page');
         $page = $page < 1 ? 1 : $page;
         return $app['feed.formatter-strategy']($format)->createResponse($app, $feed, $page);
     })->bind('feed_public')->assert('id', '\\d+')->assert('format', '(rss|atom)');
     $controllers->get('/userfeed/{token}/{id}/{format}/', function (Application $app, $token, $id, $format) {
         $token = $app["EM"]->find('Phraseanet:FeedToken', $id);
         $request = $app['request'];
         $page = (int) $request->query->get('page');
         $page = $page < 1 ? 1 : $page;
         return $app['feed.formatter-strategy']($format)->createResponse($app, $token->getFeed(), $page, $token->getUser());
     })->bind('feed_user')->assert('id', '\\d+')->assert('format', '(rss|atom)');
     $controllers->get('/userfeed/aggregated/{token}/{format}/', function (Application $app, $token, $format) {
         $token = $app['EM']->getRepository('Phraseanet:AggregateToken')->findOneBy(["value" => $token]);
         $user = $token->getUser();
         $feeds = $app['EM']->getRepository('Phraseanet:Feed')->getAllForUser($app['acl']->get($user));
         $aggregate = new Aggregate($app['EM'], $feeds, $token);
         $request = $app['request'];
         $page = (int) $request->query->get('page');
         $page = $page < 1 ? 1 : $page;
         return $app['feed.formatter-strategy']($format)->createResponse($app, $aggregate, $page, $user);
     })->bind('feed_user_aggregated')->assert('format', '(rss|atom)');
     $controllers->get('/aggregated/{format}/', function (Application $app, $format) {
         $feed = Aggregate::getPublic($app);
         $request = $app['request'];
         $page = (int) $request->query->get('page');
         $page = $page < 1 ? 1 : $page;
         return $app['feed.formatter-strategy']($format)->createResponse($app, $feed, $page);
     })->bind('feed_public_aggregated')->assert('format', '(rss|atom)');
     $controllers->get('/cooliris/', function (Application $app) {
         $feed = Aggregate::getPublic($app);
         $request = $app['request'];
         $page = (int) $request->query->get('page');
         $page = $page < 1 ? 1 : $page;
         return $app['feed.formatter-strategy']('cooliris')->createResponse($app, $feed, $page, null, 'Phraseanet', $app);
     })->bind('feed_public_cooliris');
     return $controllers;
 }
コード例 #2
0
 public function showAggregatedPublicFeedAction(Request $request, $format)
 {
     $feed = Aggregate::getPublic($this->app);
     $page = (int) $request->query->get('page');
     return $this->createFormattedFeedResponse($format, $feed, $page);
 }