Course - Improve manage multiple languages for a course - BT#19559

pull/4129/head
Christian 4 years ago
parent c17d953cec
commit 8e0e6eb6a9
  1. 20
      main/inc/global.inc.php
  2. 33
      main/inc/lib/course.lib.php
  3. 8
      main/install/configuration.dist.php

@ -488,11 +488,6 @@ if (!empty($valid_languages)) {
}
}
$courseLanguages = [];
if (isset($_course['real_id'])) {
$courseLanguages = CourseManager::getCourseMultiLanguageList($_course['real_id']);
}
// If language is set via browser ignore the priority
if (isset($_GET['language'])) {
$language_interface = $user_language;
@ -556,21 +551,6 @@ $language_interface_initial_value = $language_interface;
*/
$languageFilesToLoad = api_get_language_files_to_load($language_interface);
// It adds the langs with course selected multilanguages
$courseLanguagesFilesToLoad = [];
if (!empty($courseLanguages)) {
foreach ($courseLanguages as $courseLanguage) {
$fileToLoad = api_get_language_files_to_load($courseLanguage);
if (!empty($fileToLoad)) {
$courseLanguagesFilesToLoad = array_merge($courseLanguagesFilesToLoad, $fileToLoad);
}
}
}
if (!empty($courseLanguagesFilesToLoad)) {
$languageFilesToLoad = array_merge($languageFilesToLoad, $courseLanguagesFilesToLoad);
$languageFilesToLoad = array_unique($languageFilesToLoad);
}
foreach ($languageFilesToLoad as $languageFile) {
include $languageFile;
}

@ -2912,39 +2912,6 @@ class CourseManager
}
}
public static function getCourseMultiLanguageList($cid)
{
if (!api_get_configuration_value('allow_course_multiple_languages')) {
return false;
}
$tblCourseField = Database::get_main_table(TABLE_EXTRA_FIELD);
$tblCourseFieldValue = Database::get_main_table(TABLE_EXTRA_FIELD_VALUES);
$extraFieldType = EntityExtraField::COURSE_FIELD_TYPE;
// Set the return list
$courseLanguageList = [];
// Get special course field
$sql = "SELECT id FROM $tblCourseField
WHERE extra_field_type = $extraFieldType AND variable = 'multiple_language'";
$rs = Database::query($sql);
if (Database::num_rows($rs) > 0) {
$fieldId = Database::result($rs, 0, 0);
$sql = "SELECT value
FROM $tblCourseFieldValue
WHERE field_id = ".$fieldId." AND item_id = '".$cid."'";
$result = Database::query($sql);
while ($row = Database::fetch_assoc($result)) {
if (!empty($row['value'])) {
$courseLanguageList = explode(';', $row['value']);
}
}
}
return $courseLanguageList;
}
/**
* Get the list of course IDs with the special_course field
* set to 1. This function is access_url aware.

@ -2070,6 +2070,14 @@ VALUES (21, 13, 'send_notification_at_a_specific_date', 'Send notification at a
// Option to hide the teachers info on courses about info page.
//$_configuration['course_about_teacher_name_hide'] = false;
// Allow multiple languages to a course
// Requires DB change:
/*
INSERT INTO `extra_field` (`extra_field_type`, `field_type`, `variable`, `display_text`, `default_value`, `field_order`, `visible_to_self`, `visible_to_others`, `changeable`, `filter`, `created_at`) VALUES
(2, 5, 'multiple_language', 'Multiple Language', '', 0, 1, 0, 1, 0, NOW());
*/
//$_configuration['allow_course_multiple_languages'] = false;
// KEEP THIS AT THE END
// -------- Custom DB changes
// Add user activation by confirmation email

Loading…
Cancel
Save