Skip to content

Commit b7513f2

Browse files
Setitngs: Fix PlatformLanguage setting to support multi-URL configurations - refs #6030
1 parent 15023ce commit b7513f2

File tree

2 files changed

+36
-20
lines changed

2 files changed

+36
-20
lines changed

main/admin/languages.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@
204204
);
205205
// changing the Platform language
206206
if (isset($_POST['platformlanguage']) && $_POST['platformlanguage'] != '') {
207-
api_set_setting('platformLanguage', $_POST['platformlanguage'], null, null, $_configuration['access_url']);
207+
api_set_setting('platformLanguage', $_POST['platformlanguage'], null, null, api_get_current_access_url_id());
208208
}
209209
} elseif (isset($_POST['action'])) {
210210
switch ($_POST['action']) {
@@ -263,7 +263,11 @@
263263
$sql_select = "SELECT * FROM $tbl_admin_languages";
264264
$result_select = Database::query($sql_select);
265265

266-
$sql_select_lang = "SELECT * FROM $tbl_settings_current WHERE category='Languages'";
266+
$current_access_url = api_get_current_access_url_id();
267+
$sql_select_lang = "SELECT * FROM $tbl_settings_current
268+
WHERE category='Languages'
269+
AND access_url = $current_access_url";
270+
267271
$result_select_lang = Database::query($sql_select_lang);
268272
$row_lang = Database::fetch_array($result_select_lang);
269273

main/inc/lib/sub_language.class.php

Lines changed: 30 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -427,32 +427,44 @@ public static function make_available_language($language_id)
427427
/**
428428
* Set platform language.
429429
*
430-
* @param int $language_id The language id
430+
* @param int $languageId The language id
431431
*
432432
* @return bool
433433
*/
434-
public static function set_platform_language($language_id)
434+
public static function set_platform_language($languageId)
435435
{
436-
if (empty($language_id) || (intval($language_id) != $language_id)) {
436+
if (empty($languageId) || intval($languageId) != $languageId) {
437437
return false;
438438
}
439-
$language_id = intval($language_id);
440-
$tbl_admin_languages = Database::get_main_table(TABLE_MAIN_LANGUAGE);
441-
$tbl_settings_current = Database::get_main_table(TABLE_MAIN_SETTINGS_CURRENT);
442-
$sql = "SELECT english_name FROM $tbl_admin_languages
443-
WHERE id = $language_id";
439+
440+
$languageId = intval($languageId);
441+
$tblAdminLanguages = Database::get_main_table(TABLE_MAIN_LANGUAGE);
442+
443+
$sql = "SELECT english_name FROM $tblAdminLanguages WHERE id = $languageId";
444444
$result = Database::query($sql);
445445
$lang = Database::fetch_array($result);
446-
$sql_update_2 = "UPDATE $tbl_settings_current SET selected_value = '".$lang['english_name']."'
447-
WHERE variable='platformLanguage'";
448-
$result_2 = Database::query($sql_update_2);
449-
Event::addEvent(
450-
LOG_PLATFORM_LANGUAGE_CHANGE,
451-
LOG_PLATFORM_LANGUAGE,
452-
$lang['english_name']
453-
);
454-
455-
return $result_2 !== false;
446+
447+
if ($lang) {
448+
$success = api_set_setting(
449+
'platformLanguage',
450+
$lang['english_name'],
451+
null,
452+
null,
453+
api_get_current_access_url_id()
454+
);
455+
456+
if ($success) {
457+
Event::addEvent(
458+
LOG_PLATFORM_LANGUAGE_CHANGE,
459+
LOG_PLATFORM_LANGUAGE,
460+
$lang['english_name']
461+
);
462+
}
463+
464+
return $success;
465+
}
466+
467+
return false;
456468
}
457469

458470
/**

0 commit comments

Comments
 (0)