Esempio n. 1
0
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);
}