Language: Change course language to platform language when disabling language used by course - refs #4418

Author: @BorjaSanchezBeezNest
pull/4430/head
Borja Sánchez 3 years ago committed by GitHub
parent 77052d0baf
commit 1bce02bd33
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 7
      main/admin/languages.php
  2. 19
      main/inc/lib/course.lib.php
  3. 14
      main/inc/lib/sub_language.class.php

@ -137,7 +137,7 @@ $htmlHeadXtra[] = '<script>
var action = datos.split(":")[0]; var action = datos.split(":")[0];
if (action && action == "confirm") { if (action && action == "confirm") {
var id = datos.split(":")[1]; var id = datos.split(":")[1];
var sure = "<div class=\"warning-message alert alert-warning\">'.get_lang('ThereAreUsersUsingThisLanguageYouWantToDisableThisLanguageAndSetUsersWithTheDefaultPortalLanguage').'<br /><br /><a href=\"languages.php?action=make_unavailable_confirmed&id="+id+"\" class=\"btn btn-default\"><em class=\"fa fa-eye\"></em> '.get_lang('MakeUnavailable').'</a></div>"; var sure = "<div class=\"warning-message alert alert-warning\">'.get_lang('ThereAreUsersOrCoursesUsingThisLanguageYouWantToDisableThisLanguageAndSetUsersAndCoursesWithTheDefaultPortalLanguage').'<br /><br /><a href=\"languages.php?action=make_unavailable_confirmed&id="+id+"\" class=\"btn btn-default\"><em class=\"fa fa-eye\"></em> '.get_lang('MakeUnavailable').'</a></div>";
$("#id_content_message").html(sure); $("#id_content_message").html(sure);
$("html, body").animate({ scrollTop: 0 }, 200); $("html, body").animate({ scrollTop: 0 }, 200);
} }
@ -241,6 +241,7 @@ if (isset($_GET['action']) && $_GET['action'] == 'make_unavailable_confirmed') {
SubLanguageManager::make_unavailable_language($_GET['id']); SubLanguageManager::make_unavailable_language($_GET['id']);
$platform_language = api_get_setting('platformLanguage'); $platform_language = api_get_setting('platformLanguage');
UserManager::update_all_user_languages($language_info['english_name'], $platform_language); UserManager::update_all_user_languages($language_info['english_name'], $platform_language);
CourseManager::updateAllCourseLanguages($language_info['english_name'], $platform_language);
Display::addFlash(Display::return_message(get_lang('LanguageIsNowHidden'), 'confirm')); Display::addFlash(Display::return_message(get_lang('LanguageIsNowHidden'), 'confirm'));
} }
} }
@ -251,8 +252,8 @@ Display::addFlash(Display::return_message(get_lang('PlatformLanguagesExplanation
// including the header file (which includes the banner itself) // including the header file (which includes the banner itself)
Display::display_header($tool_name); Display::display_header($tool_name);
echo '<a echo '<a
id="disable_all_except_default" id="disable_all_except_default"
href="javascript:void(0)" class="btn btn-primary"> href="javascript:void(0)" class="btn btn-primary">
<em class="fa fa-eye"></em> '.get_lang('LanguagesDisableAllExceptDefault').'</a><br /><br />'; <em class="fa fa-eye"></em> '.get_lang('LanguagesDisableAllExceptDefault').'</a><br /><br />';

@ -5065,6 +5065,25 @@ class CourseManager
return $result; return $result;
} }
/**
* Updates the language for all courses
*
* @param string $from
* @param string $to
*/
public static function updateAllCourseLanguages(string $from, string $to): bool
{
$tableCourse = Database::get_main_table(TABLE_MAIN_COURSE);
$from = Database::escape_string($from);
$to = Database::escape_string($to);
if (!empty($to) && !empty($from)) {
$sql = "UPDATE $tableCourse SET course_language = '$to'
WHERE course_language = '$from'";
return Database::query($sql);
}
return false;
}
/** /**
* Add user vote to a course. * Add user vote to a course.
* *

@ -82,7 +82,7 @@ class SubLanguageManager
$table = Database::get_main_table(TABLE_MAIN_LANGUAGE); $table = Database::get_main_table(TABLE_MAIN_LANGUAGE);
$parent_id = intval($parent_id); $parent_id = intval($parent_id);
$sub_language_id = intval($sub_language_id); $sub_language_id = intval($sub_language_id);
$sql = "SELECT * FROM $table $sql = "SELECT * FROM $table
WHERE WHERE
parent_id = $parent_id AND parent_id = $parent_id AND
id = $sub_language_id"; id = $sub_language_id";
@ -352,12 +352,20 @@ class SubLanguageManager
$language_info = self::get_all_information_of_language($language_id); $language_info = self::get_all_information_of_language($language_id);
$table = Database::get_main_table(TABLE_MAIN_USER); $table = Database::get_main_table(TABLE_MAIN_USER);
$sql = 'SELECT count(*) AS count FROM '.$table.' $sql = 'SELECT count(*) AS count FROM '.$table.'
WHERE language ="'.Database::escape_string($language_info['english_name']).'"'; WHERE language = "'.Database::escape_string($language_info['english_name']).'"';
$rs = Database::query($sql); $rs = Database::query($sql);
if (Database::num_rows($rs) > 0 && Database::result($rs, '0', 'count') >= 1) { if (Database::num_rows($rs) > 0 && Database::result($rs, '0', 'count') >= 1) {
return true; return true;
} else { } else {
return false; $table = Database::get_main_table(TABLE_MAIN_COURSE);
$sql = 'SELECT count(*) AS count FROM '.$table.'
WHERE course_language = "'.Database::escape_string($language_info['english_name']).'"';
$rs = Database::query($sql);
return Database::num_rows($rs) > 0 && Database::result($rs, '0', 'count') >= 1;
} }
} }

Loading…
Cancel
Save