|
@@ -30,42 +30,19 @@ class CoreController extends Controller
|
30
|
30
|
}
|
31
|
31
|
|
32
|
32
|
$url_referer = $this->container->get('request')->headers->get('referer');
|
|
33
|
+ $url_referer = str_replace(
|
|
34
|
+ $siteurl = $this->container->getParameter('siteurl'),
|
|
35
|
+ '',
|
|
36
|
+ $url_referer
|
|
37
|
+ );
|
33
|
38
|
|
34
|
|
- // On effectue un contrôle un peu spécial:
|
35
|
|
- // Si la page de demande était la page de connexion (hello)
|
36
|
|
- if (
|
37
|
|
- $this->generateUrl('index', array('_locale' => $old), true) == $url_referer
|
38
|
|
- || $this->generateUrl('index', array('_locale' => null), true) == $url_referer
|
39
|
|
- )
|
40
|
|
- {
|
41
|
|
- // On construit l'url
|
42
|
|
- $url = $this->generateUrl('index', array('_locale' => $language));
|
43
|
|
- }
|
44
|
|
- else
|
45
|
|
- {
|
46
|
|
-
|
47
|
|
- // Sinon on doit rediriger l'utilisateur vers son url d'origine
|
48
|
|
-
|
49
|
|
- if (preg_match('/user/', $url_referer))
|
50
|
|
- {
|
51
|
|
- $search = "/$old/user/";
|
52
|
|
- $replace = "/$language/user/";
|
53
|
|
- }
|
54
|
|
- elseif (preg_match('/group/', $url_referer))
|
55
|
|
- {
|
56
|
|
- $search = "/$old/group/";
|
57
|
|
- $replace = "/$language/group/";
|
58
|
|
- }
|
59
|
|
- else
|
60
|
|
- {
|
61
|
|
- $search = "/$old";
|
62
|
|
- $replace = "/$language";
|
63
|
|
- }
|
64
|
|
-
|
65
|
|
- $url = str_replace($search, $replace, $url_referer);
|
66
|
|
- }
|
|
39
|
+ $params = $this->get('router')->match($url_referer);
|
|
40
|
+ $params['_locale'] = $language;
|
|
41
|
+ $route = $params['_route'];
|
|
42
|
+ unset($params['_route'], $params['_controller']);
|
|
43
|
+ $new_url = $this->generateUrl($route, $params);
|
67
|
44
|
|
68
|
|
- return new RedirectResponse($url);
|
|
45
|
+ return new RedirectResponse($new_url);
|
69
|
46
|
}
|
70
|
47
|
|
71
|
48
|
/**
|