function JQ_editQuiz($id, $option, $page, $course_id) { global $JLMS_DB, $my, $JLMS_CONFIG; $AND_ST = ""; if (false !== ($enroll_period = JLMS_getEnrolPeriod($my->id, $course_id))) { $AND_ST = " AND IF(is_time_related, (show_period < '" . $enroll_period . "' ), 1) "; } $row = new mos_JoomQuiz_Quiz($JLMS_DB); $row->addCond($AND_ST); $row->load($id); if ($id) { } elseif (mosGetParam($_REQUEST, 'flag')) { $row->bind($_POST); $row->flag = mosGetParam($_REQUEST, 'c_pool_type_gqp'); } else { $row->c_user_id = $my->id; $JLMS_DB->SetQuery("Select name from #__users WHERE id = '" . $my->id . "'"); $row->c_author = $JLMS_DB->LoadResult(); $row->c_slide = 1; $row->c_gradebook = 1; $row->c_max_numb_attempts = 0; $row->c_resume = 1; } if (!isset($row->flag)) { $row->flag = 0; } /*----------------------------------------------------*/ $count_array = array(); $new_val_array = array(); if ($JLMS_CONFIG->get('global_quest_pool')) { if ($id) { $query = "SELECT count(*) FROM #__lms_quiz_t_quiz_gqp WHERE quiz_id = {$id} AND qcat_id <> 0"; $JLMS_DB->setQuery($query); $pool_is_cat_mode_gqp = intval($JLMS_DB->loadResult()); $query = "SELECT count(*) FROM #__lms_quiz_t_quiz_gqp WHERE quiz_id = {$id} AND qcat_id = 0"; $JLMS_DB->setQuery($query); $pool_is_quest_mode_gqp = intval($JLMS_DB->loadResult()); if ($pool_is_cat_mode_gqp) { $query = "SELECT * FROM #__lms_quiz_t_quiz_gqp WHERE quiz_id = {$id} AND qcat_id <> 0 ORDER BY orderin"; $JLMS_DB->setQuery($query); $db_cats = $JLMS_DB->loadObjectList(); $row->flag = 2; for ($i = 0; $i < count($db_cats); $i++) { $_REQUEST['cat_id_gqp'][] = $db_cats[$i]->qcat_id; $_REQUEST['pool_cat_number_gqp'][] = $db_cats[$i]->items_number; } } // $lists['pool_quest_mode_gqp'] = $pool_is_quest_mode_gqp ? false : true; // if (!$lists['pool_quest_mode_gqp']) { // $lists['pool_quest_num_gqp'] = 0; // } } } $levels = array(); $javascript = 'onchange="document.adminForm.page.value=\'edit_quiz\';document.adminForm.submit();"'; if ($row->flag == 2) { $cat_id = mosGetParam($_REQUEST, 'cat_id_gqp'); $count_array = mosGetParam($_REQUEST, 'pool_cat_number_gqp'); if (isset($cat_id) && count($cat_id)) { foreach ($cat_id as $k => $v) { if ($cat_id[$k] == 0) { unset($cat_id[$k]); } unset($_REQUEST['cat_id_gqp'][$k]); } if (!isset($cat_id[0])) { unset($cat_id); } $lists = array(); $level = 0; if (isset($cat_id) && count($cat_id)) { foreach ($cat_id as $k => $v) { $query = "SELECT parent" . "\n FROM #__lms_gqp_cats" . "\n WHERE id = '" . $cat_id[$k] . "'"; $JLMS_DB->setQuery($query); $parent = intval($JLMS_DB->loadResult()); if (!$parent) { $parent = 0; } /*-----------------category-----------------------*/ $query = "SELECT id AS value, c_category AS text" . "\n FROM #__lms_gqp_cats" . "\n WHERE parent = '" . $parent . "'" . "\n ORDER BY c_category"; $JLMS_DB->setQuery($query); $categories[] = mosHTML::makeOption('0', 'Select Category'); $categories = array_merge($categories, $JLMS_DB->loadObjectList()); $level = JLMS_quiz_admin_class::check_level($cat_id[$k]); $categories = JLMS_quiz_admin_class::count_questions_in_category($categories, $level); $category = mosHTML::selectList($categories, 'cat_id_gqp[]', 'class="text_area" size="1" style="width:100%;" ' . $javascript, 'value', 'text', $cat_id[$k]); //echo JLMS_quiz_admin_class::check_level($cat_id[$k]); die; $levels[] = $level; $lists['category'][] = $category; unset($category); unset($categories); /*----------------subcategory---------------------*/ if (JLMS_quiz_admin_class::select_sub($k, $cat_id)) { $this_level = JLMS_quiz_admin_class::check_level($cat_id[$k]); $level1 = $this_level; for ($j = $this_level; $j > -1; $j--) { for ($n = $k; $n > -1; $n--) { if (isset($cat_id[$n]) && isset($level1) && JLMS_quiz_admin_class::check_level($cat_id[$n]) == $level1 && JLMS_quiz_admin_class::this_level_on_stek($cat_id, $n)) { $query = "SELECT id AS value, c_category AS text" . "\n FROM #__lms_gqp_cats" . "\n WHERE parent = '" . $cat_id[$n] . "'" . "\n ORDER BY c_category"; $JLMS_DB->setQuery($query); if ($JLMS_DB->loadObjectList()) { $categories[] = mosHTML::makeOption('0', 'Select SubCategory'); $categories = array_merge($categories, $JLMS_DB->loadObjectList()); $categories = JLMS_quiz_admin_class::count_questions_in_category($categories, $this_level); $category = mosHTML::selectList($categories, 'cat_id_gqp[]', 'class="text_area" size="1" style="width:100%;" ' . $javascript, 'value', 'text', ''); $levels[] = $level1 + 1; $lists['category'][] = $category; unset($category); unset($categories); $new_val_array[] = $cat_id[$k]; } $level1--; } } } } /*------------------------------------------------*/ } } } $query = "SELECT id AS value, c_category AS text" . "\n FROM #__lms_gqp_cats" . "\n WHERE parent = 0" . "\n ORDER BY c_category"; $JLMS_DB->setQuery($query); $categories[] = mosHTML::makeOption('0', 'Select Category'); $categories = array_merge($categories, $JLMS_DB->loadObjectList()); $categories = JLMS_quiz_admin_class::count_questions_in_category($categories, 0); $category = mosHTML::selectList($categories, 'cat_id_gqp[]', 'class="text_area" size="1" style="width:100%;"' . $javascript, 'value', 'text', ''); $lists['new_category'] = $category; unset($category); unset($categories); } /*---------------------------------------------------*/ if (is_array($row->params)) { $row->params = implode("\n", $row->params); } $params = new JLMSParameters($row->params); $params->def('disable_quest_feedback', 0); $params->def('sh_user_answer', 0); $params->def('sh_correct_answer', 1); $params->def('sh_explanation', 0); $params->def('sh_final_page', 1); $params->def('sh_self_verification', 0); $params->def('sh_final_page_text', 1); $params->def('sh_final_page_grafic', 0); $params->def('sh_final_page_fdbck', 1); $params->def('sh_skip_quest', 0); if (!$row->c_user_id) { $row->c_user_id = $my->id; } $query = "SELECT a.*, b.items_number FROM #__lms_quiz_t_category as a LEFT JOIN #__lms_quiz_t_quiz_pool as b" . "\n ON a.c_id = b.qcat_id AND b.quiz_id = {$id}" . "\n WHERE a.course_id = '" . $course_id . "' AND a.is_quiz_cat = 0 order by a.c_category"; $JLMS_DB->setQuery($query); $pool_cats = $JLMS_DB->loadObjectList(); $lists['jq_pool_categories'] = $pool_cats; if ($JLMS_CONFIG->get('global_quest_pool')) { $query = "SELECT a.*, b.items_number FROM #__lms_gqp_cats as a LEFT JOIN #__lms_quiz_t_quiz_gqp as b" . "\n ON a.id = b.qcat_id AND b.quiz_id = {$id}" . "\n order by a.c_category"; $JLMS_DB->setQuery($query); $pool_cats = $JLMS_DB->loadObjectList(); $lists['jq_pool_categories_gqp'] = $pool_cats; } $query = "SELECT items_number FROM #__lms_quiz_t_quiz_pool WHERE quiz_id = {$id} AND qcat_id = 0"; $JLMS_DB->setQuery($query); $pool_quest_num = intval($JLMS_DB->loadResult()); $lists['pool_quest_num'] = $pool_quest_num; if ($JLMS_CONFIG->get('global_quest_pool')) { $query = "SELECT items_number FROM #__lms_quiz_t_quiz_gqp WHERE quiz_id = {$id} AND qcat_id = 0"; $JLMS_DB->setQuery($query); $pool_quest_num_gqp = intval($JLMS_DB->loadResult()); $lists['pool_quest_num_gqp'] = $pool_quest_num_gqp; } $query = "SELECT count(*) FROM #__lms_quiz_t_quiz_pool WHERE quiz_id = {$id} AND qcat_id <> 0"; $JLMS_DB->setQuery($query); $pool_is_quest_mode = intval($JLMS_DB->loadResult()); $lists['pool_quest_mode'] = $pool_is_quest_mode ? false : true; if (!$lists['pool_quest_mode']) { $lists['pool_quest_num'] = 0; } $query = "SELECT * FROM #__lms_quiz_t_category WHERE course_id = '" . $course_id . "' AND is_quiz_cat = 1 order by c_category"; $JLMS_DB->setQuery($query); $jq_cats = $JLMS_DB->loadObjectList(); $lists['jq_categories'] = mosHTML::selectList($jq_cats, 'c_category_id', 'class="inputbox" size="1"', 'c_id', 'c_category', $row->c_category_id); $jq_temps = array(); /*$query = "SELECT * FROM #__lms_quiz_templates order by id"; $JLMS_DB->setQuery( $query ); $jq_temps = $JLMS_DB->loadObjectList(); $lists['jq_templates'] = mosHTML::selectList( $jq_temps, 'c_skin', 'class="inputbox" size="1"', 'id', 'template_name', $row->c_skin ); $jq_langs = array();*/ /* $query = "SELECT * FROM #__lms_quiz_languages order by id"; $JLMS_DB->setQuery( $query ); $jq_langs = $JLMS_DB->loadObjectList(); $lists['jq_languages'] = mosHTML::selectList( $jq_langs, 'c_language', 'class="inputbox" size="1"', 'id', 'lang_file', $row->c_language );*/ $jq_certs = array(); $query = "SELECT id as value, crtf_text as text, crtf_name FROM #__lms_certificates WHERE course_id = '" . $course_id . "' AND crtf_type = 2 AND parent_id = 0 ORDER BY id"; $JLMS_DB->setQuery($query); $jq_certs[] = mosHTML::makeOption(0, _JLMS_SB_NO_CERTIFICATE); $jq_certs2 = $JLMS_DB->loadObjectList(); $i = 0; while ($i < count($jq_certs2)) { $jq_certs2[$i]->text = $jq_certs2[$i]->crtf_name ? $jq_certs2[$i]->crtf_name : (strlen($jq_certs2[$i]->text) > 50 ? substr($jq_certs2[$i]->text, 0, 50) . '...' : $jq_certs2[$i]->text); $i++; } $jq_certs = array_merge($jq_certs, $jq_certs2); $lists['jq_certificates'] = mosHTML::selectList($jq_certs, 'c_certificate', 'class="inputbox" size="1" ' . ($params->get('sh_self_verification') ? "disabled='disabled'" : '') . '', 'value', 'text', $params->get('sh_self_verification') == 1 ? 0 : $row->c_certificate); $user_emailto = array(); $user_emailto[] = mosHTML::makeOption(0, _JLMS_DISABLE_OPTION); $user_emailto[] = mosHTML::makeOption(1, _JLMS_QUIZ_EMAIL_TO_AUTHOR); $user_emailto[] = mosHTML::makeOption(2, _JLMS_QUIZ_EMAIL_TO_LEARNER); $lists['user_email_to'] = mosHTML::selectList($user_emailto, 'c_email_to', 'class="inputbox" size="1"', 'value', 'text', $row->c_email_to); $quiz_explanation = array(); $quiz_explanation[] = mosHTML::makeOption(0, _JLMS_DISABLE_OPTION); $quiz_explanation[] = mosHTML::makeOption(1, _JLMS_QUIZ_REVIEW_FOR_ALL); $quiz_explanation[] = mosHTML::makeOption(2, _JLMS_QUIZ_REVIEW_FOR_PASSED); $quiz_explanation[] = mosHTML::makeOption(3, _JLMS_QUIZ_REVIEW_FOR_FAILED); $lists['quiz_explanation'] = mosHTML::selectList($quiz_explanation, 'params[sh_explanation]', 'class="inputbox" size="1"', 'value', 'text', $params->get('sh_explanation')); $lists['published'] = mosHTML::yesnoradioList('published', '', $row->published); $lists['sh_final_page_text'] = mosHTML::yesnoradioList('params[sh_final_page_text]', 'class="inputbox"', $params->get('sh_final_page_text', 1)); $lists['sh_final_page_grafic'] = mosHTML::yesnoradioList('params[sh_final_page_grafic]', 'class="inputbox"', $params->get('sh_final_page_grafic', 0)); $lists['sh_final_page_fdbck'] = mosHTML::yesnoradioList('params[sh_final_page_fdbck]', 'class="inputbox"', $params->get('sh_final_page_fdbck', 1)); $property = $params->get('sh_self_verification') == 1 ? "disabled" : ""; $property_1 = $property . ' onclick="javascript: this.form[\'c_enable_review\'].value = this.value;"'; $lists['c_enable_review_chk'] = mosHTML::yesnoradioList('c_enable_review_chk', $property_1, $row->c_enable_review); $lists['sh_correct_answer'] = mosHTML::yesnoradioList('params[sh_correct_answer]', $property, $params->get('sh_correct_answer', 1)); $lists['sh_user_answer'] = mosHTML::yesnoradioList('params[sh_user_answer]', $property, $params->get('sh_user_answer', 0)); $lists['c_resume'] = mosHTML::yesnoradioList('c_resume', '', $row->c_resume); if (!mosGetParam($_REQUEST, 'c_title') && !isset($row->c_title)) { if (!isset($cat_id)) { $cat_id = array(); } $count_array = JLMS_quiz_admin_class::insert_null($new_val_array, $count_array, $cat_id); } JLMS_quiz_admin_html_class::JQ_editQuiz($row, $lists, $option, $page, $course_id, $params, $levels, $count_array); }