before(function() use ($app) { return $app['phraseanet.core']['Firewall']->requireAdmin($app); }); /** * Get globals value * * name : setup_globals * * description : Display globals values * * method : GET * * parameters : none * * return : HTML Response */ $controllers->get('/', $this->call('getGlobals'))->bind('setup_globals'); /** * Submit global values * * name : submit_setup_globals * * description : Change globals values * * method : POST * * parameters : none * * return : Redirect Response */ $controllers->post('/', $this->call('postGlobals'))->bind('submit_setup_globals'); return $controllers; } /** * * @param \Silex\Application $app * @param \Symfony\Component\HttpFoundation\Request $request * @return \Symfony\Component\HttpFoundation\Response */ public function getGlobals(Application $app, Request $request) { \phrasea::start($app['phraseanet.core']); require_once __DIR__ . "/../../../../conf.d/_GV_template.inc"; $app['twig']->addFunction('listTimeZone', new \Twig_Function_Function('\DateTimeZone::listAbbreviations')); if (null !== $update = $request->get('update')) { if('ok' === $update) { $update = _('Update succeed'); } else { $update = _('Update failed'); } } return new Response($app['twig']->render('admin/setup.html.twig', array( 'GV' => $GV, 'update_post_datas' => $update ))); } /** * * @param \Silex\Application $app * @param \Symfony\Component\HttpFoundation\Request $request * @return \Symfony\Component\HttpFoundation\Response */ public function postGlobals(Application $app, Request $request) { if (\setup::create_global_values($app['phraseanet.core']['Registry'], $request->request->all())) { return $app->redirect('/admin/globals/?update=ok'); } return $app->redirect('/admin/globals/?update=ko'); } /** * Prefix the method to call with the controller class name * * @param string $method The method to call * @return string */ private function call($method) { return sprintf('%s::%s', __CLASS__, $method); } }