protected function run() { $siteRepository = new SiteRepository(); $eventCustomFieldsRepo = new EventCustomFieldDefinitionRepository(); $siteRepositoryBuilder = new SiteRepositoryBuilder(); $count = 0; foreach ($siteRepositoryBuilder->fetchAll() as $site) { $crb = new CountryRepositoryBuilder(); $crb->setSiteIn($site); $countries = $crb->fetchAll(); $timezones = array(); foreach ($countries as $country) { foreach (explode(",", $country->getTimezones()) as $timeZone) { $timezones[] = $timeZone; } } $site->setCachedTimezonesAsList($timezones); $site->setCachedIsMultipleCountries(count($countries) > 1); $siteRepository->editCached($site); $eventCustomFieldsRepo->updateSiteCache($site); ++$count; } return array('result' => 'ok', 'count' => $count); }
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)); }