$(function() { $(".course_notification").each(function(index) { var div = $(this); var id = $(this).attr("id"); var idList = id.split("_"); var courseId = idList[1]; var sessionId = idList[2]; var status = idList[3]; $.ajax({ type: "GET", url: "'.api_get_path(WEB_AJAX_PATH).'course_home.ajax.php?a=get_notification&course_id="+courseId+"&session_id="+sessionId+"&status="+status, success: function(data) { div.append(data); } }); }); }); '; } /* Header Include the HTTP, HTML headers plus the top banner. */ if ($load_dirs) { $url = api_get_path(WEB_AJAX_PATH).'document.ajax.php?a=document_preview'; $folder_icon = api_get_path(WEB_IMG_PATH).'icons/22/folder.png'; $close_icon = api_get_path(WEB_IMG_PATH).'loading1.gif'; $htmlHeadXtra[] = ''; } if ($displayMyCourseViewBySessionLink) { $htmlHeadXtra[] = ' '; } $myCourseListAsCategory = api_get_configuration_value('my_courses_list_as_category'); $controller = new IndexManager(get_lang('MyCourses')); if (!$myCourseListAsCategory) { // Main courses and session list if (isset($_COOKIE['defaultMyCourseView'.$userId]) && $_COOKIE['defaultMyCourseView'.$userId] == IndexManager::VIEW_BY_SESSION && $displayMyCourseViewBySessionLink ) { $courseAndSessions = $controller->returnCoursesAndSessionsViewBySession($userId); IndexManager::setDefaultMyCourseView(IndexManager::VIEW_BY_SESSION, $userId); } else { $courseAndSessions = $controller->returnCoursesAndSessions($userId); IndexManager::setDefaultMyCourseView(IndexManager::VIEW_BY_DEFAULT, $userId); } // if teacher, session coach or admin, display the button to change te course view if ($displayMyCourseViewBySessionLink && ( api_is_drh() || api_is_session_general_coach() || api_is_platform_admin() || api_is_session_admin() || api_is_teacher() ) ) { $courseAndSessions['html'] = "

".$courseAndSessions['html']; } } else { $categoryCode = isset($_GET['category']) ? $_GET['category'] : ''; if (!$categoryCode) { $courseAndSessions = $controller->returnCourseCategoryListFromUser($userId); } else { $courseAndSessions = $controller->returnCoursesAndSessions( $userId, false, $categoryCode ); $getCategory = CourseCategory::getCategory($categoryCode); $controller->tpl->assign('category', $getCategory); } } // Check if a user is enrolled only in one course for going directly to the course after the login. if (api_get_setting('go_to_course_after_login') == 'true') { $count_of_sessions = $courseAndSessions['session_count']; $count_of_courses_no_sessions = $courseAndSessions['course_count']; // User is subscribe in 1 session and 0 courses. if ($count_of_sessions == 1 && $count_of_courses_no_sessions == 0) { $sessions = SessionManager::get_sessions_by_user($userId); if (isset($sessions[0])) { $sessionInfo = $sessions[0]; // Session only has 1 course. if (isset($sessionInfo['courses']) && count($sessionInfo['courses']) == 1 ) { $courseCode = $sessionInfo['courses'][0]['code']; $courseInfo = api_get_course_info_by_id($sessionInfo['courses'][0]['real_id']); $courseUrl = $courseInfo['course_public_url'].'?id_session='.$sessionInfo['session_id']; header('Location:'.$courseUrl); exit; } // Session has many courses. if (isset($sessionInfo['session_id'])) { $url = api_get_path(WEB_CODE_PATH).'session/?session_id='.$sessionInfo['session_id']; header('Location:'.$url); exit; } } } // User is subscribed to 1 course. if (!isset($_SESSION['coursesAlreadyVisited']) && $count_of_sessions == 0 && $count_of_courses_no_sessions == 1 ) { $courses = CourseManager::get_courses_list_by_user_id( $userId ); if (!empty($courses) && isset($courses[0]) && isset($courses[0]['code'])) { $courseInfo = api_get_course_info_by_id($courses[0]['real_id']); if (!empty($courseInfo)) { $courseUrl = $courseInfo['course_public_url']; header('Location:'.$courseUrl); exit; } } } } // Show the chamilo mascot if (empty($courseAndSessions['html']) && !isset($_GET['history'])) { $controller->tpl->assign( 'welcome_to_course_block', $controller->return_welcome_to_course_block() ); } $controller->tpl->assign('content', $courseAndSessions['html']); // Display the Site Use Cookie Warning Validation $useCookieValidation = api_get_setting('cookie_warning'); if ($useCookieValidation === 'true') { if (isset($_POST['acceptCookies'])) { api_set_site_use_cookie_warning_cookie(); } else { if (!api_site_use_cookie_warning_cookie_exist()) { if (Template::isToolBarDisplayedForUser()) { $controller->tpl->assign('toolBarDisplayed', true); } else { $controller->tpl->assign('toolBarDisplayed', false); } $controller->tpl->assign('displayCookieUsageWarning', true); } } } //check for flash and message $sniff_notification = ''; $some_activex = isset($_SESSION['sniff_check_some_activex']) ? $_SESSION['sniff_check_some_activex'] : null; $some_plugins = isset($_SESSION['sniff_check_some_plugins']) ? $_SESSION['sniff_check_some_plugins'] : null; if (!empty($some_activex) || !empty($some_plugins)) { if (!preg_match("/flash_yes/", $some_activex) && !preg_match("/flash_yes/", $some_plugins)) { $sniff_notification = Display::return_message(get_lang('NoFlash'), 'warning', true); //js verification - To annoying of redirecting every time the page $controller->tpl->assign('sniff_notification', $sniff_notification); } } $controller->tpl->assign('profile_block', $controller->return_profile_block()); $controller->tpl->assign('user_image_block', $controller->return_user_image_block()); $controller->tpl->assign('course_block', $controller->return_course_block()); $controller->tpl->assign('navigation_course_links', $controller->return_navigation_links()); $controller->tpl->assign('search_block', $controller->return_search_block()); $controller->tpl->assign('classes_block', $controller->return_classes_block()); $controller->tpl->assign('skills_block', $controller->returnSkillLinks()); $historyClass = ''; if (!empty($_GET['history'])) { $historyClass = 'courses-history'; } $controller->tpl->assign('course_history_page', $historyClass); if ($myCourseListAsCategory) { $controller->tpl->assign('header', get_lang('MyCourses')); } $allow = api_get_configuration_value('gradebook_dependency'); if ($allow) { $courseAndSessions = $controller->returnCoursesAndSessions( $userId, false, '', false ); $courseList = api_get_configuration_value('gradebook_dependency_mandatory_courses'); $courseList = isset($courseList['courses']) ? $courseList['courses'] : []; $mandatoryCourse = []; if (!empty($courseList)) { foreach ($courseList as $courseId) { $courseInfo = api_get_course_info_by_id($courseId); $mandatoryCourse[] = $courseInfo['code']; } } // @todo improve calls of course info $subscribedCourses = !empty($courseAndSessions['courses']) ? $courseAndSessions['courses'] : []; $mainCategoryList = []; foreach ($subscribedCourses as $courseInfo) { $courseCode = $courseInfo['code']; $categories = Category::load(null, null, $courseCode); /** @var Category $category */ $category = !empty($categories[0]) ? $categories[0] : []; if (!empty($category)) { $mainCategoryList[] = $category; } } $result = []; $result20 = 0; $result80 = 0; $countCoursesPassedNoDependency = 0; /** @var Category $category */ foreach ($mainCategoryList as $category) { $userFinished = Category::userFinishedCourse( $userId, $category, true ); if ($userFinished) { if (in_array($category->get_course_code(), $mandatoryCourse)) { if ($result20 < 20) { $result20 += 10; } } else { $countCoursesPassedNoDependency++; if ($result80 < 80) { $result80 += 10; } } } } $finalResult = $result20 + $result80; $gradeBookList = api_get_configuration_value('gradebook_badge_sidebar'); $gradeBookList = isset($gradeBookList['gradebooks']) ? $gradeBookList['gradebooks'] : []; $badgeList = []; foreach ($gradeBookList as $id) { $categories = Category::load($id); /** @var Category $category */ $category = !empty($categories[0]) ? $categories[0] : []; $badgeList[$id]['name'] = $category->get_name(); $badgeList[$id]['finished'] = false; $badgeList[$id]['skills'] = []; if (!empty($category)) { $minToValidate = $category->getMinimumToValidate(); $dependencies = $category->getCourseListDependency(); $countDependenciesPassed = 0; foreach ($dependencies as $courseId) { $courseInfo = api_get_course_info_by_id($courseId); $courseCode = $courseInfo['code']; $categories = Category::load(null, null, $courseCode); $subCategory = !empty($categories[0]) ? $categories[0] : null; if (!empty($subCategory)) { $score = Category::userFinishedCourse( $userId, $subCategory, true ); if ($score) { $countDependenciesPassed++; } } } $userFinished = $countDependenciesPassed == count($dependencies) && $countCoursesPassedNoDependency >= $minToValidate ; if ($userFinished) { $badgeList[$id]['finished'] = true; } $objSkill = new Skill(); $skills = $category->get_skills(); $skillList = []; foreach ($skills as $skill) { $skillList[] = $objSkill->get($skill['id']); } $badgeList[$id]['skills'] = $skillList; } } $controller->tpl->assign( 'grade_book_sidebar', true ); $controller->tpl->assign( 'grade_book_progress', $finalResult ); $controller->tpl->assign('grade_book_badge_list', $badgeList); /*if ($finalScore > 0) { $finalScore = (int) $finalScore / count($total); if ($finalScore == 100) { $completed = true; } }*/ } $controller->tpl->display_two_col_template(); // Deleting the session_id. Session::erase('session_id'); Session::erase('studentview'); api_remove_in_gradebook();