function JQ_ListQuizzes_Stu($option, $course_id) { global $JLMS_DB, $JLMS_SESSION, $my, $JLMS_CONFIG; $JLMS_ACL =& JLMSFactory::getACL(); $cat_id = intval(mosGetParam($_REQUEST, 'cat_id', $JLMS_SESSION->get('cat_id', 0))); $JLMS_SESSION->set('cat_id', $cat_id); $limit = intval(mosGetParam($_REQUEST, 'limit', $JLMS_SESSION->get('list_limit', $JLMS_CONFIG->get('list_limit')))); $JLMS_SESSION->set('list_limit', $limit); $limitstart = intval(mosGetParam($_REQUEST, 'limitstart', 0)); $AND_ST = ""; if (false !== ($enroll_period = JLMS_getEnrolPeriod($my->id, $course_id))) { $AND_ST = " AND IF(a.is_time_related, (a.show_period < '" . $enroll_period . "' ), 1) "; } $query = "SELECT COUNT(*)" . "\n FROM #__lms_quiz_t_quiz AS a" . "\n WHERE a. course_id = '" . $course_id . "'" . $AND_ST . ($JLMS_ACL->CheckPermissions('quizzes', 'view_all') ? '' : "\n AND a.published = 1") . ($cat_id ? "\n AND a.c_category_id = {$cat_id}" : ''); $JLMS_DB->setQuery($query); $total = $JLMS_DB->loadResult(); require_once _JOOMLMS_FRONT_HOME . DS . "includes" . DS . "classes" . DS . "lms.pagination.php"; $pageNav = new JLMSPageNav($total, $limitstart, $limit); $query = "SELECT a.*, b.c_category, u.name as author_name " . "\n FROM #__lms_quiz_t_quiz a LEFT JOIN #__lms_quiz_t_category b ON a.c_category_id = b.c_id AND b.course_id = '" . $course_id . "' AND b.is_quiz_cat = 1 LEFT JOIN #__users as u ON a.c_user_id = u.id" . "\n WHERE a.course_id = '" . $course_id . "'" . $AND_ST . ($JLMS_ACL->CheckPermissions('quizzes', 'view_all') ? '' : "\n AND a.published = 1") . ($cat_id ? "\n AND a.c_category_id = {$cat_id}" : '') . "\n ORDER BY a.c_title, b.c_category" . "\n LIMIT {$pageNav->limitstart}, {$pageNav->limit}"; $JLMS_DB->setQuery($query); $rows = $JLMS_DB->loadObjectList(); $quizzes_i = array(); foreach ($rows as $row) { $quizzes_i[] = $row->c_id; } $q_items_num = array(); if (!empty($quizzes_i)) { $quizzes_i_cid = implode(',', $quizzes_i); $query = "SELECT sum(items_number) as items_count, quiz_id FROM #__lms_quiz_t_quiz_pool WHERE quiz_id IN ({$quizzes_i_cid}) GROUP BY quiz_id"; $JLMS_DB->SetQuery($query); $q_items_num = $JLMS_DB->loadObjectList(); } for ($i = 0, $n = count($rows); $i < $n; $i++) { $rows[$i]->quests_from_pool = 0; foreach ($q_items_num as $qin) { if ($qin->quiz_id == $rows[$i]->c_id) { if ($qin->items_count) { $rows[$i]->quests_from_pool = $qin->items_count; } break; } } } $javascript = 'onchange="document.adminForm.submit();"'; $query = "SELECT c_id AS value, c_category AS text" . "\n FROM #__lms_quiz_t_category WHERE course_id = '" . $course_id . "' AND is_quiz_cat = 1" . "\n ORDER BY c_category"; $JLMS_DB->setQuery($query); $categories[] = mosHTML::makeOption('0', _JLMS_SB_SELECT_CATEGORY); $categories = array_merge($categories, $JLMS_DB->loadObjectList()); $category = mosHTML::selectList($categories, 'cat_id', 'class="inputbox" size="1" ' . $javascript, 'value', 'text', $cat_id); $lists['category'] = $category; $lists['used_category_filter'] = $cat_id; $arr1 = array(); if (!empty($rows)) { if (empty($rows)) { $quiz_ids = array(0); } else { $quiz_ids = array(); foreach ($rows as $row1) { $quiz_ids[] = $row1->c_id; } $query = "SELECT * FROM #__lms_quiz_results WHERE quiz_id IN (" . implode(',', $quiz_ids) . ") AND course_id='" . $course_id . "' AND user_id = '" . $my->id . "'"; // GROUP BY quiz_id"; $JLMS_DB->SetQuery($query); $user_results = $JLMS_DB->loadObjectList(); for ($i = 0; $i < count($rows); $i++) { $rows[$i]->user_passed = -1; $rows[$i]->quiz_max_score = 0; $rows[$i]->user_score = 0; foreach ($user_results as $user_result1) { if ($user_result1->course_id == $rows[$i]->course_id && $user_result1->quiz_id == $rows[$i]->c_id) { $rows[$i]->user_passed = $user_result1->user_passed; $rows[$i]->quiz_max_score = $user_result1->quiz_max_score; $rows[$i]->user_score = $user_result1->user_score; } } } } require_once _JOOMLMS_FRONT_HOME . DS . "includes" . DS . "lms_certificates.php"; $arr = array(); JLMS_Certificates::JLMS_GB_getUserCertificates($course_id, $my->id, $arr); $arr1 = isset($arr['user_quiz_certificates']) ? $arr['user_quiz_certificates'] : array(); } for ($i = 0; $i < count($rows); $i++) { for ($j = 0; $j < count($arr1); $j++) { if ($arr1[$j]->c_quiz_id == $rows[$i]->c_id) { $rows[$i]->link_certificate = "<a class=\"jlms_img_link\" target = \"_blank\" href = \"" . $JLMS_CONFIG->get('live_site') . "/index.php?tmpl=component&option=" . $option . "&no_html=1&task=print_quiz_cert&course_id=" . $course_id . "&stu_quiz_id=" . $arr1[$j]->stu_quiz_id . "&user_unique_id=" . $arr1[$j]->user_unique_id . "\"><img src = \"" . $JLMS_CONFIG->get('live_site') . "/components/com_joomla_lms/lms_images/toolbar/btn_certificate.png\" border = \"0\" align=\"top\" alt=\"certificate\"/></a>"; $rows[$i]->user_score = $arr1[$j]->user_score; $rows[$i]->quiz_max_score = $arr1[$j]->quiz_max_score; } } } $lms_titles_cache =& JLMSFactory::getTitles(); $lms_titles_cache->setArray('quiz_t_quiz', $rows, 'c_id', 'c_title'); // echo '<pre>'; // print_r($rows); // echo '</pre>'; JLMS_quiz_admin_html_class::JQ_showQuizList_Stu($rows, $lists, $pageNav, $option, $course_id); }