public function connect(SilexApplication $app) { $app['controller.prod'] = $this; $controllers = $app['controllers_factory']; $controllers->before(function (Request $request) use($app) { if (!$app['authentication']->isAuthenticated() && null !== $request->query->get('nolog')) { return $app->redirectPath('login_authenticate_as_guest'); } if (null !== ($response = $app['firewall']->requireAuthentication())) { return $response; } }); $controllers->get('/', function (Application $app) { try { \Session_Logger::updateClientInfos($app, 1); } catch (SessionNotFound $e) { return $app->redirectPath('logout'); } $cssPath = $app['root.path'] . '/www/skins/prod/'; $css = []; $cssfile = false; $finder = new Finder(); $iterator = $finder->directories()->depth(0)->filter(function (\SplFileInfo $fileinfo) { return ctype_xdigit($fileinfo->getBasename()); })->in($cssPath); foreach ($iterator as $dir) { $baseName = $dir->getBaseName(); $css[$baseName] = $baseName; } $cssfile = $app['settings']->getUserSetting($app['authentication']->getUser(), 'css'); if (!$cssfile && isset($css['000000'])) { $cssfile = '000000'; } $feeds = $app['repo.feeds']->getAllForUser($app['acl']->get($app['authentication']->getUser())); $aggregate = Aggregate::createFromUser($app, $app['authentication']->getUser()); $thjslist = ""; $queries_topics = ''; if ($app['conf']->get(['registry', 'classic', 'render-topics']) == 'popups') { $queries_topics = \queries::dropdown_topics($app['translator'], $app['locale']); } elseif ($app['conf']->get(['registry', 'classic', 'render-topics']) == 'tree') { $queries_topics = \queries::tree_topics($app['locale']); } $sbas = $bas2sbas = []; foreach ($app['phraseanet.appbox']->get_databoxes() as $databox) { $sbas_id = $databox->get_sbas_id(); $sbas['s' + $sbas_id] = ['sbid' => $sbas_id, 'seeker' => null]; foreach ($databox->get_collections() as $coll) { $bas2sbas['b' . $coll->get_base_id()] = ['sbid' => $sbas_id, 'ckobj' => ['checked' => false], 'waschecked' => false]; } } return $app['twig']->render('prod/index.html.twig', ['module_name' => 'Production', 'WorkZone' => new Helper\WorkZone($app, $app['request']), 'module_prod' => new Helper\Prod($app, $app['request']), 'cssfile' => $cssfile, 'module' => 'prod', 'events' => $app['events-manager'], 'GV_defaultQuery_type' => $app['conf']->get(['registry', 'searchengine', 'default-query-type']), 'GV_multiAndReport' => $app['conf']->get(['registry', 'modules', 'stories']), 'GV_thesaurus' => $app['conf']->get(['registry', 'modules', 'thesaurus']), 'cgus_agreement' => \databox_cgu::askAgreement($app), 'css' => $css, 'feeds' => $feeds, 'aggregate' => $aggregate, 'GV_google_api' => $app['conf']->get(['registry', 'webservices', 'google-charts-enabled']), 'queries_topics' => $queries_topics, 'search_status' => \databox_status::getSearchStatus($app), 'queries_history' => \queries::history($app, $app['authentication']->getUser()->getId()), 'thesau_js_list' => $thjslist, 'thesau_json_sbas' => json_encode($sbas), 'thesau_json_bas2sbas' => json_encode($bas2sbas), 'thesau_languages' => $app['locales.available']]); })->bind('prod'); return $controllers; }
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; }
public function indexAction(Request $request) { try { \Session_Logger::updateClientInfos($this->app, 1); } catch (SessionNotFound $e) { return $this->app->redirectPath('logout'); } $cssPath = $this->app['root.path'] . '/www/assets/prod/skins'; $css = []; $finder = new Finder(); /** @var SplFileInfo[] $iterator */ $iterator = $finder->directories()->depth(0)->filter(function (\SplFileInfo $fileinfo) { return ctype_xdigit($fileinfo->getBasename()); })->in($cssPath); foreach ($iterator as $dir) { $baseName = $dir->getBaseName(); $css[$baseName] = $baseName; } $user = $this->getAuthenticatedUser(); $cssfile = $this->getSettings()->getUserSetting($user, 'css'); if (!$cssfile && isset($css['000000'])) { $cssfile = '000000'; } $feeds = $this->getFeedRepository()->getAllForUser($this->getAclForUser()); $aggregate = Aggregate::createFromUser($this->app, $user); $thjslist = ""; $queries_topics = ''; $conf = $this->getConf(); if ($conf->get(['registry', 'classic', 'render-topics']) == 'popups') { $queries_topics = \queries::dropdown_topics($this->app['translator'], $this->app['locale']); } elseif ($conf->get(['registry', 'classic', 'render-topics']) == 'tree') { $queries_topics = \queries::tree_topics($this->app['locale']); } $sbas = $bas2sbas = []; foreach ($this->getApplicationBox()->get_databoxes() as $databox) { $sbas_id = $databox->get_sbas_id(); $sbas['s' . $sbas_id] = ['sbid' => $sbas_id, 'seeker' => null]; foreach ($databox->get_collections() as $coll) { $bas2sbas['b' . $coll->get_base_id()] = ['sbid' => $sbas_id, 'ckobj' => ['checked' => false], 'waschecked' => false]; } } $helper = new Helper\Prod($this->app, $request); /** @var \Closure $filter */ $filter = $this->app['plugin.filter_by_authorization']; $plugins = ['workzone' => $filter('workzone'), 'actionbar' => $filter('actionbar')]; return $this->render('prod/index.html.twig', ['module_name' => 'Production', 'WorkZone' => new Helper\WorkZone($this->app, $request), 'module_prod' => $helper, 'search_datas' => $helper->get_search_datas(), 'cssfile' => $cssfile, 'module' => 'prod', 'events' => $this->app['events-manager'], 'GV_defaultQuery_type' => $conf->get(['registry', 'searchengine', 'default-query-type']), 'GV_multiAndReport' => $conf->get(['registry', 'modules', 'stories']), 'GV_thesaurus' => $conf->get(['registry', 'modules', 'thesaurus']), 'cgus_agreement' => \databox_cgu::askAgreement($this->app), 'css' => $css, 'feeds' => $feeds, 'aggregate' => $aggregate, 'GV_google_api' => $conf->get(['registry', 'webservices', 'google-charts-enabled']), 'queries_topics' => $queries_topics, 'search_status' => \databox_status::getSearchStatus($this->app), 'queries_history' => \queries::history($this->app, $user->getId()), 'thesau_js_list' => $thjslist, 'thesau_json_sbas' => json_encode($sbas), 'thesau_json_bas2sbas' => json_encode($bas2sbas), 'thesau_languages' => $this->app['locales.available'], 'plugins' => $plugins]); }
public function get_publications(Application $app, Request $request) { $user = $app['authentication']->getUser(); $restrictions = (array) ($request->get('feeds') ?: []); $feed = Aggregate::createFromUser($app, $user, $restrictions); $offset_start = (int) ($request->get('offset_start') ?: 0); $per_page = (int) ($request->get('per_page') ?: 5); $per_page = $per_page >= 1 && $per_page <= 20 ? $per_page : 20; $data = ['total_entries' => $feed->getCountTotalEntries(), 'offset_start' => $offset_start, 'per_page' => $per_page, 'entries' => $this->list_publications_entries($app, $feed, $offset_start, $per_page)]; return Result::create($request, $data)->createResponse(); }
public function showAggregatedPublicFeedAction(Request $request, $format) { $feed = Aggregate::getPublic($this->app); $page = (int) $request->query->get('page'); return $this->createFormattedFeedResponse($format, $feed, $page); }
public function get_publications(Request $request, User $user) { $result = new API_V1_result($this->app, $request, $this); $feed = Aggregate::createFromUser($this->app, $user); $offset_start = (int) ($request->get('offset_start') ?: 0); $per_page = (int) ($request->get('per_page') ?: 5); $per_page = $per_page >= 1 && $per_page <= 20 ? $per_page : 5; $datas = ['total_entries' => $feed->getCountTotalEntries(), 'offset_start' => $offset_start, 'per_page' => $per_page, 'entries' => $this->list_publications_entries($feed, $offset_start, $per_page)]; $result->set_datas($datas); return $result; }
/** * Gets publications start home page for client * * @param Application $app * @return string */ private function getPublicationStartPage(Application $app) { return $app['twig']->render('client/home_inter_pub_basket.html.twig', ['feeds' => Aggregate::createFromUser($app, $app['authentication']->getUser()), 'image_size' => (int) $app['settings']->getUserSetting($app['authentication']->getUser(), 'images_size')]); }