Browse Source

Add course setting show_course_in_user_language BT#11016

jmontoyaa 9 years ago
parent
commit
84b34f3df0

+ 11 - 2
main/course_info/infocours.php

@@ -178,6 +178,13 @@ $form->addElement(
 );
 $form->addElement('select_language', 'course_language', array(get_lang('Ln'), get_lang('TipLang')));
 
+$group = array(
+    $form->createElement('radio', 'show_course_in_user_language', null, get_lang('Yes'), 1),
+    $form->createElement('radio', 'show_course_in_user_language', null, get_lang('No'), 2),
+);
+
+$form->addGroup($group, '', array(get_lang("ShowCourseInUserLanguage")), '');
+
 $form->addText('department_name', get_lang('Department'), false);
 $form->applyFilter('department_name', 'html_filter');
 $form->applyFilter('department_name', 'trim');
@@ -456,12 +463,14 @@ $form->addButtonSave(get_lang('SaveSettings'), 'submit_save');
 $form->addElement('html', '</div></div>');
 
 // Document settings
-$form->addElement('html', '<div><h3>'.Display::return_icon('folder.png', Security::remove_XSS(get_lang('Documents')),'',ICON_SIZE_SMALL).' '.Security::remove_XSS(get_lang('Documents')).'</h3><div>');
+$form->addElement(
+    'html',
+    '<div><h3>'.Display::return_icon('folder.png', Security::remove_XSS(get_lang('Documents')),'',ICON_SIZE_SMALL).' '.Security::remove_XSS(get_lang('Documents')).'</h3><div>'
+);
 
 $group = array(
     $form->createElement('radio', 'show_system_folders', null, get_lang('Yes'), 1),
     $form->createElement('radio', 'show_system_folders', null, get_lang('No'), 2),
-
 );
 $form->addGroup($group, '', array(get_lang("ShowSystemFolders")), '');
 $form->addButtonSave(get_lang('SaveSettings'), 'submit_save');

+ 2 - 1
main/inc/lib/add_course.lib.inc.php

@@ -689,7 +689,8 @@ class AddCourse
                 'default' => api_get_setting('allow_public_certificates') === 'true' ? 1 : '',
                 'category' =>'certificates'
             ],
-            'documents_default_visibility' => ['default' =>'visible', 'category' =>'document']
+            'documents_default_visibility' => ['default' =>'visible', 'category' =>'document'],
+            'show_course_in_user_language' => ['default' => 2],
         ];
 
         $counter = 1;

+ 11 - 2
main/inc/lib/api.lib.php

@@ -1392,7 +1392,7 @@ function api_get_user_info(
 ) {
 
     if (empty($user_id)) {
-        $userFromSession = Session::read('_user');        
+        $userFromSession = Session::read('_user');
         if (isset($userFromSession)) {
             return _api_format_user($userFromSession);
         }
@@ -4245,6 +4245,7 @@ function api_get_language_from_type($lang_type)
             global $_course;
             $cidReq = null;
             if (empty($_course)) {
+
                 // Code modified because the local.inc.php file it's declarated after this work
                 // causing the function api_get_course_info() returns a null value
                 $cidReq = isset($_GET["cidReq"]) ? Database::escape_string($_GET["cidReq"]) : null;
@@ -4257,8 +4258,16 @@ function api_get_language_from_type($lang_type)
                 }
             }
             $_course = api_get_course_info($cidReq);
-            if (isset($_course['language']) && !empty($_course['language']))
+            if (isset($_course['language']) && !empty($_course['language'])) {
                 $return = $_course['language'];
+                $showCourseInUserLanguage = api_get_course_setting('show_course_in_user_language');
+                if ($showCourseInUserLanguage == 1) {
+                    $userInfo = api_get_user_info();
+                    if (isset($userInfo['language'])) {
+                        $return = $userInfo['language'];
+                    }
+                }
+            }
             break;
         default:
             $return = false;

+ 2 - 1
main/inc/lib/course.lib.php

@@ -5033,7 +5033,8 @@ class CourseManager
             'pdf_export_watermark_text',
             'show_system_folders',
             'exercise_invisible_in_session',
-            'enable_forum_auto_launch'
+            'enable_forum_auto_launch',
+            'show_course_in_user_language'
         );
 
         $allowLPReturnLink = api_get_setting('allow_lp_return_link');