コード例 #1
0
 function countries(Request $request, Application $app)
 {
     $crb = new CountryRepositoryBuilder();
     $crb->setSiteInformation($app['currentSite']);
     $countries = $crb->fetchAll();
     if ($request->request->get('submitted') == 'yes' && $request->request->get('CSFRToken') == $app['websession']->getCSFRToken()) {
         $in = is_array($request->request->get('country')) ? $request->request->get('country') : null;
         $cisr = new CountryInSiteRepository();
         $countriesCount = 0;
         $timezones = array();
         foreach ($countries as $country) {
             if (isset($in[$country->getTwoCharCode()]) && $in[$country->getTwoCharCode()] == 'yes') {
                 $cisr->addCountryToSite($country, $app['currentSite'], $app['currentUser']);
                 $countriesCount++;
                 foreach (explode(",", $country->getTimezones()) as $timeZone) {
                     $timezones[] = $timeZone;
                 }
             } else {
                 $cisr->removeCountryFromSite($country, $app['currentSite'], $app['currentUser']);
             }
         }
         $app['currentSite']->setCachedTimezonesAsList($timezones);
         $app['currentSite']->setCachedIsMultipleCountries($countriesCount > 1);
         $siteRepository = new SiteRepository();
         $siteRepository->editCached($app['currentSite']);
         return $app->redirect('/admin/');
     }
     return $app['twig']->render('site/admin/countries.html.twig', array('countries' => $countries));
 }