From fc423215e2f851afa032b5f424b995b49cd7260e Mon Sep 17 00:00:00 2001 From: Luis Fernando Saisa Lopez Date: Fri, 8 Aug 2014 13:06:16 -0400 Subject: [PATCH] BUG 15524 "Mantener el Idioma de la URL..." SOLVED MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Mantener el Idioma de la URL al iniciar sesió - Problema resuelto, al iniciar sesion con un determinado idioma en la url y cerrar sesion, al iniciar sesion nuevamente en el login el idioma se mantendra al idioma definido en la url, tambien se adiciona una opcion mas al guardar la configuracion del idioma cuya opcion es "Use the language of URL". --- workflow/engine/classes/class.system.php | 18 +++++++++--------- workflow/engine/controllers/admin.php | 1 + workflow/engine/controllers/adminProxy.php | 2 +- workflow/engine/methods/login/login.php | 6 +++--- .../engine/methods/setup/loginSettingsAjax.php | 2 ++ workflow/public_html/bootstrap.php | 2 +- workflow/public_html/sysGeneric.php | 2 +- 7 files changed, 18 insertions(+), 15 deletions(-) diff --git a/workflow/engine/classes/class.system.php b/workflow/engine/classes/class.system.php index 4ee4518e5..9c8470930 100755 --- a/workflow/engine/classes/class.system.php +++ b/workflow/engine/classes/class.system.php @@ -682,14 +682,14 @@ class System return System::getSchema( PATH_TRUNK . "workflow/engine/config/schema.xml" ); } - /** - * Retrieves the system schema rbac. - * - * @return schema content in an array - */ - public static function getSystemSchemaRbac () - { - return System::getSchema( PATH_TRUNK . "rbac/engine/config/schema.xml" ); + /** + * Retrieves the system schema rbac. + * + * @return schema content in an array + */ + public static function getSystemSchemaRbac () + { + return System::getSchema( PATH_TRUNK . "rbac/engine/config/schema.xml" ); } /** @@ -1138,7 +1138,7 @@ class System @preg_match( $patt, $content, $match ); if (is_array( $match ) && count( $match ) > 0 && isset( $match[1] )) { - $newUrl = 'sys/' . $conf['lang'] . '/' . $conf['skin'] . '/login/login'; + $newUrl = "sys/" . (($conf["lang"] != "")? $conf["lang"] : "en") . "/" . $conf["skin"] . "/login/login"; $newMetaStr = str_replace( $match[1], $newUrl, $match[0] ); $newContent = str_replace( $match[0], $newMetaStr, $content ); diff --git a/workflow/engine/controllers/admin.php b/workflow/engine/controllers/admin.php index 7e4435ca2..f0126281e 100644 --- a/workflow/engine/controllers/admin.php +++ b/workflow/engine/controllers/admin.php @@ -30,6 +30,7 @@ class Admin extends Controller $timeZonesList = array_keys( $timeZonesList ); $mainController = new Main(); $languagesList = $mainController->getLanguagesList(); + $languagesList[] = array ("", G::LoadTranslation("ID_USE_LANGUAGE_URL")); $sysConf = System::getSystemConfiguration( PATH_CONFIG . 'env.ini' ); foreach ($skinsList['skins'] as $skin) { diff --git a/workflow/engine/controllers/adminProxy.php b/workflow/engine/controllers/adminProxy.php index 71fe76e76..c5f69d694 100644 --- a/workflow/engine/controllers/adminProxy.php +++ b/workflow/engine/controllers/adminProxy.php @@ -119,7 +119,7 @@ class adminProxy extends HttpProxyController $this->success = true; $this->restart = $restart; - $this->url = '/sys' . SYS_SYS . '/' . $sysConf['default_lang'] . '/' . $sysConf['default_skin'] . $urlPart; + $this->url = "/sys" . SYS_SYS . "/" . (($sysConf["default_lang"] != "")? $sysConf["default_lang"] : "en") . "/" . $sysConf["default_skin"] . $urlPart; $this->message = 'Saved Successfully'; } diff --git a/workflow/engine/methods/login/login.php b/workflow/engine/methods/login/login.php index 715481171..acc19b3e7 100755 --- a/workflow/engine/methods/login/login.php +++ b/workflow/engine/methods/login/login.php @@ -147,15 +147,15 @@ $_DBArray ['langOptions'] = $availableLangArray; G::LoadClass('configuration'); //BootStrap::LoadClass('configuration'); -$myUrl = explode("/", $_SERVER["REQUEST_URI"]); - $oConf = new Configurations(); $oConf->loadConfig($obj, 'ENVIRONMENT_SETTINGS', ''); +$myUrl = explode("/", $_SERVER["REQUEST_URI"]); + if (isset($myUrl) && $myUrl != "") { $aFields["USER_LANG"] = $myUrl[2]; } else { - $aFields['USER_LANG'] = isset($oConf->aConfig["login_defaultLanguage"])? $oConf->aConfig["login_defaultLanguage"] : "en"; + $aFields["USER_LANG"] = isset($oConf->aConfig["login_defaultLanguage"])? $oConf->aConfig["login_defaultLanguage"] : "en"; } $G_PUBLISH = new Publisher(); diff --git a/workflow/engine/methods/setup/loginSettingsAjax.php b/workflow/engine/methods/setup/loginSettingsAjax.php index a0a29bdc6..61eba676b 100755 --- a/workflow/engine/methods/setup/loginSettingsAjax.php +++ b/workflow/engine/methods/setup/loginSettingsAjax.php @@ -14,6 +14,8 @@ switch ($request) { ); } + $result->rows[] = array ("LAN_ID" => "", "LAN_NAME" => G::LoadTranslation("ID_USE_LANGUAGE_URL")); + print (G::json_encode( $result )) ; break; case 'saveSettings': diff --git a/workflow/public_html/bootstrap.php b/workflow/public_html/bootstrap.php index ec988636c..998f0897f 100755 --- a/workflow/public_html/bootstrap.php +++ b/workflow/public_html/bootstrap.php @@ -226,7 +226,7 @@ if (!file_exists(PATH_HTML . 'index.html')) { // if not, create it from template file_put_contents( PATH_HTML . 'index.html', - G::parseTemplate(PATH_TPL . 'index.html', array('lang' => SYS_LANG, 'skin' => SYS_SKIN)) + G::parseTemplate(PATH_TPL . "index.html", array("lang" => ((SYS_LANG != "")? SYS_LANG : "en"), "skin" => SYS_SKIN)) ); } diff --git a/workflow/public_html/sysGeneric.php b/workflow/public_html/sysGeneric.php index 1fb060fe9..01ca8c78f 100755 --- a/workflow/public_html/sysGeneric.php +++ b/workflow/public_html/sysGeneric.php @@ -478,7 +478,7 @@ if (Bootstrap::isPMUnderUpdating()) { // verify if index.html exists if (! file_exists( PATH_HTML . 'index.html' )) { // if not, create it from template - file_put_contents( PATH_HTML . 'index.html', Bootstrap::parseTemplate( PATH_TPL . 'index.html', array ('lang' => SYS_LANG,'skin' => SYS_SKIN + file_put_contents( PATH_HTML . "index.html", Bootstrap::parseTemplate( PATH_TPL . "index.html", array ("lang" => ((SYS_LANG != "")? SYS_LANG : "en"), "skin" => SYS_SKIN ) ) ); }