diff --git a/main/inc/lib/userportal.lib.php b/main/inc/lib/userportal.lib.php index da2238b1a8..d9afe70582 100755 --- a/main/inc/lib/userportal.lib.php +++ b/main/inc/lib/userportal.lib.php @@ -1168,69 +1168,94 @@ class IndexManager //Course option (show student progress) //This code will add new variables (Progress, Score, Certificate) - if (api_get_configuration_value('my_course_progress') === true && api_is_student() === true) { + if (isset(api_get_configuration_value('course_student_info')['progress']) || + isset(api_get_configuration_value('course_student_info')['score']) || + isset(api_get_configuration_value('course_student_info')['certificate'])) { foreach ($specialCourses as $key => $specialCourseInfo) { - $progress = Tracking::get_avg_student_progress( - $user_id, - $specialCourseInfo['course_code'] - ); - $percentage_score = Tracking::get_avg_student_score( - $user_id, - $specialCourseInfo['course_code'], - array() - ); - $specialCourses[$key]['student_info']['progress'] = ($progress === false)? null : $progress; - $specialCourses[$key]['student_info']['score'] = $percentage_score; + + if (isset(api_get_configuration_value('course_student_info')['progress']) && + api_get_configuration_value('course_student_info')['progress'] === true) { + $progress = Tracking::get_avg_student_progress( + $user_id, + $specialCourseInfo['course_code'] + ); + $specialCourses[$key]['student_info']['progress'] = ($progress === false)? null : $progress; + } - $category = Category::load( - null, - null, - $specialCourseInfo['course_code'], - null, - null, - null - ); - $specialCourses[$key]['student_info']['certificate'] = null; - if (isset($category[0])) { - if ($category[0]->is_certificate_available($user_id)) { - $specialCourses[$key]['student_info']['certificate'] = Display::label(get_lang('Yes'), 'success'); - } else { - $specialCourses[$key]['student_info']['certificate'] = Display::label(get_lang('No')); + if (isset(api_get_configuration_value('course_student_info')['score']) && + api_get_configuration_value('course_student_info')['score'] === true) { + $percentage_score = Tracking::get_avg_student_score( + $user_id, + $specialCourseInfo['course_code'], + array() + ); + $specialCourses[ $key ]['student_info']['score'] = $percentage_score; + } + + if (isset(api_get_configuration_value('course_student_info')['certificate']) && + api_get_configuration_value('course_student_info')['certificate'] === true) { + $category = Category::load( + null, + null, + $specialCourseInfo['course_code'], + null, + null, + null + ); + $specialCourses[ $key ]['student_info']['certificate'] = null; + if ( isset( $category[0] ) ) { + if ( $category[0]->is_certificate_available( $user_id ) ) { + $specialCourses[ $key ]['student_info']['certificate'] = Display::label( get_lang( 'Yes' ), 'success' ); + } else { + $specialCourses[ $key ]['student_info']['certificate'] = Display::label( get_lang( 'No' ) ); + } } } + } if (isset($courses['in_category']) && isset($courses['not_category'])) { foreach ($courses['in_category'] as $key1 => $value) { if (isset($courses['in_category'][$key1]['courses'])) { foreach ($courses['in_category'][$key1]['courses'] as $key2 => $courseInCatInfo) { - $progress = Tracking::get_avg_student_progress( - $user_id, - $courseInCatInfo['course_code'] - ); - $percentage_score = Tracking::get_avg_student_score( - $user_id, - $specialCourseInfo['course_code'], - array() - ); - $courses['in_category'][$key1]['courses'][$key2]['student_info']['progress'] = ($progress === false)? null : $progress; - $courses['in_category'][$key1]['courses'][$key2]['student_info']['score'] = $percentage_score; + + if (isset(api_get_configuration_value('course_student_info')['progress']) && + api_get_configuration_value('course_student_info')['progress'] === true) { + $progress = Tracking::get_avg_student_progress( + $user_id, + $courseInCatInfo['course_code'] + ); + $courses['in_category'][$key1]['courses'][$key2]['student_info']['progress'] = ($progress === false)? null : $progress; + } - $category = Category::load( - null, - null, - $courseInCatInfo['course_code'], - null, - null, - null - ); - $courses['in_category'][ $key1 ]['student_info']['certificate'] = null; - if (isset($category[0])) { - if ($category[0]->is_certificate_available($user_id)) { - $courses['in_category'][ $key1 ]['student_info']['certificate'] = Display::label(get_lang('Yes'), 'success'); - } else { - $courses['in_category'][ $key1 ]['student_info']['certificate'] = Display::label(get_lang('No')); + if (isset(api_get_configuration_value('course_student_info')['score']) && + api_get_configuration_value('course_student_info')['score'] === true) { + $percentage_score = Tracking::get_avg_student_score( + $user_id, + $specialCourseInfo['course_code'], + array() + ); + $courses['in_category'][$key1]['courses'][$key2]['student_info']['score'] = $percentage_score; + } + + if (isset(api_get_configuration_value('course_student_info')['certificate']) && + api_get_configuration_value('course_student_info')['certificate'] === true) { + $category = Category::load( + null, + null, + $courseInCatInfo['course_code'], + null, + null, + null + ); + $courses['in_category'][ $key1 ]['student_info']['certificate'] = null; + if ( isset( $category[0] ) ) { + if ( $category[0]->is_certificate_available( $user_id ) ) { + $courses['in_category'][ $key1 ]['student_info']['certificate'] = Display::label( get_lang( 'Yes' ), 'success' ); + } else { + $courses['in_category'][ $key1 ]['student_info']['certificate'] = Display::label( get_lang( 'No' ) ); + } } } @@ -1238,32 +1263,43 @@ class IndexManager } } foreach ($courses['not_category'] as $key => $courseNotInCatInfo) { - $progress = Tracking::get_avg_student_progress( - $user_id, - $courseNotInCatInfo['course_code'] - ); - $percentage_score = Tracking::get_avg_student_score( - $user_id, - $courseNotInCatInfo['course_code'], - array() - ); - $courses['not_category'][ $key ]['student_info']['progress'] = ($progress === false)? null : $progress; - $courses['not_category'][ $key ]['student_info']['score'] = $percentage_score; - $category = Category::load( - null, - null, - $courseNotInCatInfo['course_code'], - null, - null, - null - ); - $courses['not_category'][ $key ]['student_info']['certificate'] = null; - if (isset($category[0])) { - if ($category[0]->is_certificate_available($user_id)) { - $courses['not_category'][ $key ]['student_info']['certificate'] = Display::label(get_lang('Yes'), 'success'); - } else { - $courses['not_category'][ $key ]['student_info']['certificate'] = Display::label(get_lang('No')); + if (isset(api_get_configuration_value('course_student_info')['progress']) && + api_get_configuration_value('course_student_info')['progress'] === true) { + $progress = Tracking::get_avg_student_progress( + $user_id, + $courseNotInCatInfo['course_code'] + ); + $courses['not_category'][ $key ]['student_info']['progress'] = ($progress === false)? null : $progress; + } + + if (isset(api_get_configuration_value('course_student_info')['score']) && + api_get_configuration_value('course_student_info')['score'] === true) { + $percentage_score = Tracking::get_avg_student_score( + $user_id, + $courseNotInCatInfo['course_code'], + array() + ); + $courses['not_category'][ $key ]['student_info']['score'] = $percentage_score; + } + + if (isset(api_get_configuration_value('course_student_info')['certificate']) && + api_get_configuration_value('course_student_info')['certificate'] === true) { + $category = Category::load( + null, + null, + $courseNotInCatInfo['course_code'], + null, + null, + null + ); + $courses['not_category'][ $key ]['student_info']['certificate'] = null; + if (isset($category[0])) { + if ($category[0]->is_certificate_available($user_id)) { + $courses['not_category'][ $key ]['student_info']['certificate'] = Display::label(get_lang('Yes'), 'success'); + } else { + $courses['not_category'][ $key ]['student_info']['certificate'] = Display::label(get_lang('No')); + } } } @@ -1394,38 +1430,52 @@ class IndexManager //Course option (show student progress) //This code will add new variables (Progress, Score, Certificate) - if (api_get_configuration_value('my_course_progress') === true && api_is_student() === true) { - $progress = Tracking::get_avg_student_progress( - $user_id, - $course['course_code'], - array(), - $session_id - ); - $percentage_score = Tracking::get_avg_student_score( - $user_id, - $course['course_code'], - array(), - $session_id - ); - $course_session['student_info']['progress'] = ($progress === false)? null : $progress; - $course_session['student_info']['score'] = $percentage_score; + if (isset(api_get_configuration_value('course_student_info')['progress']) || + isset(api_get_configuration_value('course_student_info')['score']) || + isset(api_get_configuration_value('course_student_info')['certificate'])) { - $category = Category::load( - null, - null, - $course['course_code'], - null, - null, - $session_id - ); - $course_session['student_info']['certificate'] = null; - if (isset($category[0])) { - if ($category[0]->is_certificate_available($user_id)) { - $course_session['student_info']['certificate'] = Display::label(get_lang('Yes'), 'success'); - } else { - $course_session['student_info']['certificate'] = Display::label(get_lang('No')); + if (isset(api_get_configuration_value('course_student_info')['progress']) && + api_get_configuration_value('course_student_info')['progress'] === true) { + $progress = Tracking::get_avg_student_progress( + $user_id, + $course['course_code'], + array(), + $session_id + ); + $course_session['student_info']['progress'] = ($progress === false)? null : $progress; + } + + if (isset(api_get_configuration_value('course_student_info')['score']) && + api_get_configuration_value('course_student_info')['score'] === true) { + $percentage_score = Tracking::get_avg_student_score( + $user_id, + $course['course_code'], + array(), + $session_id + ); + $course_session['student_info']['score'] = $percentage_score; + } + + if (isset(api_get_configuration_value('course_student_info')['certificate']) && + api_get_configuration_value('course_student_info')['certificate'] === true) { + $category = Category::load( + null, + null, + $course['course_code'], + null, + null, + $session_id + ); + $course_session['student_info']['certificate'] = null; + if (isset($category[0])) { + if ($category[0]->is_certificate_available($user_id)) { + $course_session['student_info']['certificate'] = Display::label(get_lang('Yes'), 'success'); + } else { + $course_session['student_info']['certificate'] = Display::label(get_lang('No')); + } } } + } $html_courses_session[] = $course_session; diff --git a/main/install/configuration.dist.php b/main/install/configuration.dist.php index b15fcaa772..add632d7d7 100755 --- a/main/install/configuration.dist.php +++ b/main/install/configuration.dist.php @@ -284,7 +284,9 @@ $_configuration['system_stable'] = NEW_VERSION_STABLE; // Prevents the duplicate upload in assignments // $_configuration['assignment_prevent_duplicate_upload'] = false; //Show student progress in My courses page -//$_configuration['my_course_progress'] = false; +//$_configuration['course_student_info']['score'] = false; +//$_configuration['course_student_info']['progress'] = false; +//$_configuration['course_student_info']['certificate'] = false; // Set ConsideredWorkingTime work extra field variable to show in MyStudents page works report // (with internal id 'work_time' as below) and enable the following line to show in MyStudents page works report // $_configuration['considered_working_time'] = 'work_time';