Bonjour,
dans un site multilangue, je dois gérer chaque url en fonction de la langue.
Débutant en POO, je me pose la question suivante avec cette fonction ci-dessous:
Est ce que je m'y prends bien ou il y a un moyen plus facile ou plus logique de m'y prendre?
la page contrôleur de mon application:
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 if($login->isLogged() == true){ echo 'loggé'; }else{ echo 'pas loggé'; $global = new GlobalFunction(); $global->langBrowser(); $global->checkLang($lang_default_back); if($_GET['lang'] != $_SESSION['lang_browser']){ header("Location: ?lang=".$_SESSION['lang_browser']."§ion=".$global->setUrlLogin().""); } }
Ma classe:
Code php : 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 class GlobalFunction{ public $lang; public function langBrowser(){ $this->lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); return $this->lang; } public function checkLang($lang_default_back){ $sql = DbConnect::getInstance()->query("SELECT * FROM language WHERE code='".$this->langBrowser()."' AND activeback=1"); if($sql->rowCount() > 0): include 'lang/lang_'.$this->langBrowser().'.php'; $_SESSION['lang_browser'] = $this->langBrowser(); else: include 'lang/lang_'.$lang_default_back.'.php'; $_SESSION['lang_browser'] = $lang_default_back; endif; $sql->closeCursor(); } public function setUrlLogin(){ $sql = DbConnect::getInstance()->query("SELECT url FROM menu_back JOIN menu_back_lang ON id_menu_back=id_group WHERE name_section='login' AND lang='".$_SESSION['lang_browser']."'"); $row = $sql->fetch(); return $row->url; $sql->closeCursor(); } }
Merci d'avance de vos réponses
Partager