Bonjour,
Je suis en train de faire mon propre module pour mes redirections multilangue. Cela fonctionne bien, mais j'ai un problème pour faire passer mes variables GET dans mon URL.
En effet, l'outils switchlanguage/to ne me permet pas de faire ça.
Mais le client demande s'il est possible de faire une redirection sur une autre langue, avec les paramètres qu'il a déja saisi pour sa recherche.
Exemple : Je suis sur mon site français, je fais une recherche "toto", le paramètre toto est dans mon url, je change mon site en anglais, je veux retourner sur la même page et aussi avoir le paramètre toto.
J'ai le code suivant si ça peut vous aider :
Là ce que j'obtiens pour l'instant c'est : Une bonne redirection pour tout se qui n'est pas en search (il n'y a pas de paramètre dans le reste du site) et j'essaye de bidouiller quelque chose pour la fonction de search avec les paramètres GET, mais ce que j'obtiens c'est : monsite.com/us/fr/exalead/search?param=toto donc la redirection en langue ne se fait pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 <?php $module = $Params['Module']; $ini = eZIni::instance(); $listLang = $ini->variable('SiteSettings', 'SiteList'); $countryZone = $ini->variable('CountryZone', 'Sites'); $path = ''; $url_redirect = ''; $getArray = null; $isSearch = false; $countryZonePref = $Params['Module']->ViewParameters; $url = $Params['Module']->ViewParameters; $path .= implode('/', $url); eZPreferences::setvalue('preferedLanguage', $url[0]); foreach ($url as $key => $value) { if('search' == $value) { $isSearch = true; } } if ($isSearch) { $url_redirect = $url[0] . '/exalead/search''?' . $_SERVER['QUERY_STRING']; } else { $url_redirect = '/switchlanguage/to/' . $path; } return $module->redirectTo($url_redirect);
Partager