function JLMS_showCEOPage($option) { $db =& JFactory::getDbo(); $user = JLMSFactory::getUser(); $my_id = $user->get('id'); $JLMS_CONFIG =& JLMSFactory::getConfig(); $JLMS_SESSION =& JLMSFactory::getSession(); $my_learners = array(); $my_learners_1 = array(); $my_learners_2 = array(); $query = "SELECT a.*" . "\n, b.username, b.name, b.email" . "\n, d.course_name, d.id as course_id" . "\n FROM #__users as b, #__lms_user_parents as a" . "\n, #__lms_users_in_groups as c" . "\n, #__lms_courses as d" . "\n WHERE 1" . "\n AND a.user_id = b.id" . "\n AND a.user_id = c.user_id" . "\n AND c.course_id = d.id" . "\n AND a.parent_id = '" . $my_id . "'" . "\n ORDER BY b.username, b.name, d.course_name"; $db->SetQuery($query); $my_learners_1 = $db->LoadObjectList(); // echo $query; // echo '<pre>'; // print_r($my_learners_1); // echo '</pre>'; $query = "SELECT a.*" . "\n, b.username, b.name, b.email" . "\n, d.course_name, d.id as course_id" . "\n FROM #__users as b, #__lms_users_in_global_groups as a" . "\n, #__lms_users_in_groups as c" . "\n, #__lms_courses as d" . "\n, #__lms_user_assign_groups as e" . "\n WHERE 1" . "\n AND a.user_id = b.id" . "\n AND a.user_id = c.user_id" . "\n AND c.course_id = d.id" . "\n AND e.group_id = a.group_id" . "\n AND e.user_id = '" . $my_id . "'" . "\n ORDER BY b.username, b.name, d.course_name"; $db->SetQuery($query); $my_learners_2 = $db->LoadObjectList(); // echo $query; // echo '<pre>'; // print_r($my_learners_2); // echo '</pre>'; $exist_lrn_ids = array(); $i = 0; foreach ($my_learners_2 as $my_lrn_2) { $my_learners[] = $my_lrn_2; $exist_lrn_ids[] = $my_lrn_2->user_id; } foreach ($my_learners_1 as $my_lrn_1) { if (!in_array($my_lrn_1->user_id, $exist_lrn_ids)) { $my_learners[] = $my_lrn_1; $exist_lrn_ids[] = $my_lrn_1->user_id; } } // echo '<pre>'; // print_r($my_learners); // echo '</pre>'; $lists = array(); JLMS_ShowHeading($JLMS_CONFIG->get('jlms_heading'), false); //get list of all courses IDs $courses_ids = array(); $user_ids = array(); foreach ($my_learners as $my_learner) { if ($my_learner->course_id) { if (!in_array($my_learner->course_id, $courses_ids)) { $courses_ids[] = $my_learner->course_id; } } if ($my_learner->user_id) { if (!in_array($my_learner->user_id, $user_ids)) { $user_ids[] = $my_learner->user_id; } } } if (count($courses_ids) && count($user_ids)) { //check if any user has completed any course $user_ids_str = implode(',', $user_ids); $query = "SELECT * FROM #__lms_certificate_users WHERE user_id IN ({$user_ids_str}) AND crt_option = 1"; $db->SetQuery($query); $certificate_users = $db->LoadObjectList(); if (count($certificate_users)) { //check if courses have certificates enabled and configured $courses_ids_str = implode(',', $courses_ids); $query = "SELECT * FROM #__lms_certificates WHERE course_id IN ({$courses_ids_str}) AND crtf_type = 1"; $db->SetQuery($query); $courses_certificates = $db->LoadObjectList(); //populate list of CEO users with course completion information for ($i = 0, $n = count($my_learners); $i < $n; $i++) { $my_learners[$i]->course_completion = 0; foreach ($certificate_users as $certificate_user) { if ($certificate_user->user_id == $my_learners[$i]->user_id && $certificate_user->course_id == $my_learners[$i]->course_id) { $my_learners[$i]->course_completion = 1; foreach ($courses_certificates as $course_certificate) { if ($course_certificate->course_id == $certificate_user->course_id) { $my_learners[$i]->course_completion = 2; break; } } break; } } } } } joomla_lms_html::showCEO_page($option, $lists, $my_learners); }