Fix language issues see BT#10658

ofaj
jmontoyaa 9 years ago
parent 5a7659768b
commit 3a5efba418
  1. 2
      app/config/sonata/sonata_page.yml
  2. 5
      src/Chamilo/CoreBundle/EventListener/LocaleListener.php
  3. 7
      src/Chamilo/CoreBundle/EventListener/UserLocaleListener.php
  4. 6
      src/Chamilo/CoreBundle/Resources/config/services.yml
  5. 10
      src/Chamilo/FaqBundle/Controller/FaqController.php
  6. 4
      src/Chamilo/PageBundle/Controller/PageController.php
  7. 6
      web/app_dev.php

@ -16,7 +16,7 @@ sonata_page:
block: Chamilo\PageBundle\Entity\Block
snapshot: Chamilo\PageBundle\Entity\Snapshot
multisite: host_with_path_by_locale # host
multisite: host_by_locale # host
use_streamed_response: false # set the value to false in debug mode or if the reverse proxy does not handle streamed response
ignore_uri_patterns:

@ -52,14 +52,17 @@ class LocaleListener implements EventSubscriberInterface
*/
public function onKernelRequest(GetResponseEvent $event)
{
/** @var Request $request */
$request = $event->getRequest();
if (!$request->hasPreviousSession()) {
return;
}
// try to see if the locale has been set as a _locale routing parameter
if ($locale = $request->attributes->get('_locale')) {
if ($locale = $request->get('_locale')) {
$request->headers->set('Accept-Language', $locale);
$request->getSession()->set('_locale', $locale);
$request->setLocale($locale);
} else {
$locale = $this->defaultLocale;

@ -44,7 +44,12 @@ class UserLocaleListener
*/
public function onInteractiveLogin(InteractiveLoginEvent $event)
{
$languages = ['german' => 'de', 'english' => 'en', 'spanish' => 'es', 'french' => 'fr'];
$languages = [
'german' => 'de',
'english' => 'en',
'spanish' => 'es',
'french' => 'fr',
];
/** @var User $user */
$token = $event->getAuthenticationToken();

@ -152,7 +152,11 @@ services:
tags:
- { name: kernel.event_subscriber }
chamilo_core.listener.locale_fix:
class: Chamilo\CoreBundle\EventListener\LocaleListener
arguments: ["%kernel.default_locale%", "@service_container"]
tags:
- { name: kernel.event_listener, event: kernel.request, method: onKernelRequest, priority: 48 }
#
# # Settings listener

@ -29,9 +29,9 @@ class FaqController extends Controller
*/
public function indexAction($categorySlug, $questionSlug, Request $request)
{
$locale = $request->get('_locale');
/*$locale = $request->get('_locale');
$translator = $this->get('translator');
$translator->setLocale($locale);
$translator->setLocale($locale);*/
if (!$categorySlug || !$questionSlug) {
$redirect = $this->generateRedirectToDefaultSelection($categorySlug, $questionSlug);
@ -58,10 +58,10 @@ class FaqController extends Controller
return $this->render(
'@ChamiloFaq/Faq/index.html.twig',
array(
'categories' => $categories,
'questions' => $questions,
'categories' => $categories,
'questions' => $questions,
'selectedCategory' => $selectedCategory,
'selectedQuestion' => $selectedQuestion
'selectedQuestion' => $selectedQuestion,
)
);
}

@ -24,9 +24,8 @@ class PageController extends Controller
*/
public function getLatestPages($number, Request $request)
{
$site = $this->container->get('sonata.page.site.selector')->retrieve();
$locale = $request->get('_locale');
$site = $this->container->get('sonata.page.site.selector.host_by_locale')->retrieve();
$translator = $this->get('translator');
$criteria = [
@ -47,6 +46,7 @@ class PageController extends Controller
if ($page->getUrl() === '/') {
continue;
}
$criteria = ['pageId' => $page];
/** @var Snapshot $snapshot */
// Check if page has a valid snapshot

@ -37,9 +37,11 @@ $kernel->terminate($request, $response);*/
require_once __DIR__.'/../app/AppKernel.php';
//require_once __DIR__.'/legacy.php';
$request = Sonata\PageBundle\Request\RequestFactory::createFromGlobals(
/*$request = Sonata\PageBundle\Request\RequestFactory::createFromGlobals(
'host_with_path_by_locale'
);
);*/
$request = Request::createFromGlobals();
$kernel = new AppKernel('dev', true);
$kernel->loadClassCache();

Loading…
Cancel
Save