Ejemplo n.º 1
0
 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 . "&amp;no_html=1&amp;task=print_quiz_cert&amp;course_id=" . $course_id . "&amp;stu_quiz_id=" . $arr1[$j]->stu_quiz_id . "&amp;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);
 }