diff --git a/modules/ClassTranslation.php b/modules/ClassTranslation.php index 229d24b..e0c42e5 100644 --- a/modules/ClassTranslation.php +++ b/modules/ClassTranslation.php @@ -3,9 +3,9 @@ class ClassTranslation extends ClassConfig implements InterfaceTranslation { public function __construct(){} public function __destruct(){} - public function getTranslationV2($message_code, $lang_code, $set_data, $db_table="core_translation"){ - $this->_code = $code; - $this->_lang = $lang; + public function getTranslationV2($message_code, $lang_code, $set_data = array(), $db_table="core_translation"){ + $this->_code = $message_code; + $this->_lang = $lang_code; $this->_setData = $set_data; $this->_dbTable = $db_table; $oPDOLink = ClassConfig::databaseConnect(); @@ -104,28 +104,32 @@ class ClassTranslation extends ClassConfig implements InterfaceTranslation { } - public function getTranslation($code, $lang, $set_data = array()){ - $this->_code = $code; - $this->_lang = $lang; - $this->_setData = $set_data; - - if(!isset($_SESSION['translations'][$this->_code]) or $_SESSION['translations'][$this->_code]['source']==''){ - $row = $this->getTranslationInDatabase($this->_code, $this->_lang); - $_SESSION['translations'][$this->_code][$this->_lang] = $row[$this->_lang]; - $_SESSION['translations'][$this->_code]['source'] = $row['source']; + public function getTranslation($code, $lang = null, $set_data = array()){ + $this->_code = $code; + $this->_lang = $lang ?? $_SESSION['config']['default_lang_code']; + $this->_setData = $set_data; + + //if translation not in SESSION, then go get it from DB + if(!isset($_SESSION['translations'][$this->_code]) or $_SESSION['translations'][$this->_code]['source']==''){ + $row = $this->getTranslationInDatabase($this->_code, $this->_lang); + $_SESSION['translations'][$this->_code][$this->_lang] = $row[$this->_lang]; + $_SESSION['translations'][$this->_code]['source'] = $row['source']; + } + + //if translation in current language, display it. Else, display source + if($_SESSION['translations'][$this->_code][$this->_lang] != ''){ + $translation = $_SESSION['translations'][$this->_code][$this->_lang]; + } else { + $translation = $_SESSION['translations'][$this->_code]['source']; + } + + //if [data] in content, get values set in array $set_data + $replacement_regex = '/\[data\]/'; + foreach($this->_setData as $k=>$v){ + $translation = preg_replace($replacement_regex, $this->_setData[$k], $translation, 1); + } + return $translation; } - - if($_SESSION['translations'][$this->_code][$this->_lang] != ''){ - $translation = $_SESSION['translations'][$this->_code][$this->_lang]; - } else { - $translation = $_SESSION['translations'][$this->_code]['source']; - } - $replacement_regex = '/\[data\]/'; - foreach($this->_setData as $k=>$v){ - $translation = preg_replace($replacement_regex, $this->_setData[$k], $translation, 1); - } - return $translation; - } //public function getTranslation($code, $lang){ // $this->_code = $code; diff --git a/proxy.php b/proxy.php index 1dcb13e..7d07d0f 100644 --- a/proxy.php +++ b/proxy.php @@ -8,6 +8,7 @@ require_once './modules/ClassConfig.php'; $oConf = new ClassConfig(); $file_path = substr_replace($_SERVER['REQUEST_URI'], '/', 0, strlen($oConf->getURLRoot())); +$file_path = explode('?', $file_path)[0]; $custom_file = $oConf->getPathCustom($file_path); $native_file = $oConf->getPathRoot($file_path); diff --git a/scripts/changeLang.php b/scripts/changeLang.php index dab44c8..6614636 100644 --- a/scripts/changeLang.php +++ b/scripts/changeLang.php @@ -1,20 +1,19 @@ listContent($newLang); $_SESSION['translations'] = $oTrans->listTranslations($newLang); $newPage = $oFeatTrans->getURLTranslation($oldLang, $newLang, $oldPage);