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. 3
      main/admin/languages.php
  2. 19
      main/inc/lib/course.lib.php
  3. 12
      main/inc/lib/sub_language.class.php

@ -137,7 +137,7 @@ $htmlHeadXtra[] = '<script>
var action = datos.split(":")[0];
if (action && action == "confirm") {
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);
$("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']);
$platform_language = api_get_setting('platformLanguage');
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'));
}
}

@ -5065,6 +5065,25 @@ class CourseManager
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.
*

@ -352,12 +352,20 @@ class SubLanguageManager
$language_info = self::get_all_information_of_language($language_id);
$table = Database::get_main_table(TABLE_MAIN_USER);
$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);
if (Database::num_rows($rs) > 0 && Database::result($rs, '0', 'count') >= 1) {
return true;
} 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