src/Modules/VoucherCart/Controller/LocaleController.php line 46

  1. <?php
  2. namespace App\Modules\VoucherCart\Controller;
  3. use Symfony\Component\HttpFoundation\Response;
  4. use Doctrine\Persistence\ManagerRegistry;
  5. use App\Service\LocaleService;
  6. use App\Modules\User\Service\UserService;
  7. class LocaleController extends BaseController
  8. {
  9.     private $_doctrine;
  10.     private $_localeService;
  11.     private $_userService;
  12.     
  13.     public function __construct(
  14.             ManagerRegistry $doctrine,
  15.             LocaleService $localeService,
  16.             UserService $userService)
  17.     {
  18.         $this->_doctrine $doctrine;
  19.         $this->_localeService $localeService;
  20.         $this->_userService $userService;
  21.     }
  22.     public function changeLocale($locale)
  23.     {
  24.         $this->_localeService->setLocale($locale);
  25.         
  26.         $locale $this->_localeService->getLocale();
  27.         $user $this->_userService->getLoggedUser(false);
  28.         if ($user && $user->getSelectedLang() != $locale)
  29.         {
  30.             $user->setSelectedLang($locale);
  31.             $em $this->_doctrine->getManager();
  32.             $em->persist($user);
  33.             $em->flush();
  34.         }
  35.         return $this->returnToPreviousPage();
  36.     }
  37.     
  38.     public function languageWidget($route null)
  39.     {
  40.         $selectedLocale $this->_localeService->getLocale();
  41.         $locales = array();
  42.         
  43.         foreach($this->_localeService->getAvailableLocales() as $locale)
  44.             $locales[$locale] = $this->_localeService->getLocaleName($locale);
  45.         
  46.         if (count($locales) <= 1)
  47.             return new Response();
  48.         
  49.         return $this->render($view ?? 'Modules/VoucherCart/Templates/Locale/languageWidget.html.twig', array(
  50.             'locales' => $locales,
  51.             'selectedLocale' => $selectedLocale,
  52.             'route' => $route ?? 'change_locale'
  53.         ));
  54.     }    
  55. }