관리-도구
편집 파일: CFCourse_quiz.php
<?php if(!class_exists('CFCourse_quiz')) { class CFCourse_quiz { var $loader; function __construct($arr) { $this->loader=$arr['loader']; } /* @param working: this function add section for cousrse */ public function handleQuizData( $quiz_data = null ){ global $mysqli; global $dbpref; $table = $dbpref."content_options"; $course_id = (int)$mysqli->real_escape_string( trim( $quiz_data['cfcourse_course_id'] ) ); $section_id = (int)$mysqli->real_escape_string( trim( $quiz_data['cfcourse_section_id'] ) ); $title = $mysqli->real_escape_string( trim( $quiz_data['cfcourse_q_t'] ) ); $position = $mysqli->real_escape_string( trim( $quiz_data['position'] ) ); $positions = explode(",",$position); if( empty( $title ) ){ echo json_encode( array( "status"=>0, "type"=>"quiz_title","message"=>"Please fill this field" ) ); die(); } $title = !empty( $title ) ? $title:""; $etitle = $title; $option_type = 'quiz'; $content_type = "quiz"; $time = date("Y-m-d H:i:s"); $total_count = getTotalCount($table); $site_token_for_dashboard=get_option('site_token'); if($_SESSION['user_plan_type' . $site_token_for_dashboard] ==2 && $total_count >= 1) { echo json_encode( array("status"=>0, "type"=> "quiz_add", "message"=>"course quiz not added succesfull") ); die(); } $a_stmt = "INSERT INTO `".$table."` (`course_id`, `section_id`, `title`, `option_type`,`content_type`, `created_at`, `updated_at`,`updates` ) VALUES ($course_id, $section_id, '".$etitle."', '".$option_type."','".$content_type."','".$time."', '".$time."','1' )"; $return_insert = $mysqli->query( $a_stmt )?1:1; if( $mysqli->affected_rows == 1 ){ $last_id=$mysqli->insert_id; $result = $mysqli->query("SELECT * FROM `".$table."` Where `id`=".$last_id); if( $result->num_rows > 0 ) { foreach($positions as $posit ) { if($posit=="new") { $pos[]=$last_id; }else{ $pos[]=$posit; } } $section_ob = $this->loader->load("section"); $section_ob->addPosition($pos,"l",$course_id); $q_data = $result->fetch_assoc(); $html = self::getQuizHtml( $q_data, 1 ); echo json_encode( array("status"=>1, "cls"=>".cfcourse_s_t_i_des", "type"=> "quiz_add", "quiz_id"=>$last_id,"data" =>$html , "message"=>"course quiz added succesfull") ); die(); } }else{ echo json_encode( array("status"=>0, "type"=> "quiz_add", "message"=>"course quiz not added succesfull") ); die(); } } public function getQuizHtml( $q_data = null, $next_count = 1 ) { $install_url = get_option("install_url"); $last_id = $q_data['id']; $html = ""; $q_title = htmlspecialchars( stripslashes( $q_data['title'] ) ); $q_tle = ( ( strlen( $q_title ) > 80) ? substr( $q_title,0, 80 ).'...' : $q_title ); $course_id = $q_data["course_id"]; $section_id = $q_data["section_id"]; $href= $install_url."?page=cfcourse_manage_quiz&course_id=".$course_id."&section_id=".$section_id."&quiz_id=".$last_id; ob_start(); echo' <div id="cfcourse-o-t-cont-'.$last_id.'" class="cfcourse-o-t-c cf--open-lectab cfcourse-q bg-white p-2" data-position="not" data-posid="'.$last_id.'"> <div class="cfcourse-o-content "> <div class="d-flex cf--c--opsrtab cf--open-lectuer justify-content-between justify-content-md-between align-items-center flex-column flex-sm-row"> <div class="cf--course-stitle"> <i class="fas fa-puzzle-piece"></i> <span style="font-weight:bold" >'.t('Quiz').'. <span class="cfcourse-q-count">2</span>: </span> <span class="cfcourse-quiz-title" > '.$q_tle.' <span> </div> <div class="cfcourse-action cfcourse-action p-sm-0 pt-1"> <div class="d-flex"> <div class="px-1 "> <a href="'.$href.'" target="_blank" class=" d-inline-block btn btn-success" title="'.t('Edit Quiz Content').'"> <i class="fas fa-edit d-inline-block"></i> </a></div> <div class="px-1 cfcourse-del-content-btn cfcourse-del-content" data-cont-id="'.$last_id.'"><button class="cfcourse-del-content-btn btn btn-danger" title="'.t('Delete Section').'"> <i class="fas fa-trash cfcourse-del-content-btn"></i> </button></div> </div> </div> </div> </div> </div> <div class="cfcourse-o-a-o cfcourse-a-o text-center mt-4" data-c-id="'.$course_id.'" data-s-id="'.$section_id.'"> <div class="cfcourse-a-o cfcourse-a-o-c " title="'.t('Add Content').'"><button class="btn btn-primary cfcourse-a-o cfcourse-a-o-btn"><span class="cfcourse-a-o cfcourse-a-o-text">+</span></button></div> </div> '; $html.=ob_get_clean(); return $html; } // It will add a section for course function exportToCSVQUIZ() { if( isset( $_POST['quizto_csv'] ) ) { global $mysqli; global $dbpref; $student_quiz = $dbpref."stud_quiz";// in this table only percentage, scror , kab submit, kiya name, email etc enter honge $quiz_response= $dbpref."submit_quiz";// in this table only all question, unke correct answer, and student ke answer hoge enter hoge $content_table= $dbpref."content_options"; $course_table= $dbpref."all_products"; $sql = "SELECT cfsq.*, cfc.`title`, cfq.`title` as 'quiz_title' FROM `".$student_quiz."` as cfsq LEFT JOIN `".$course_table."` as cfc ON cfc.`id`=cfsq.`course_id` LEFT JOIN `".$content_table."` as cfq ON cfq.`id`=cfsq.`quiz_id`"; $row = $mysqli->query($sql); $csv_fields=array(); $csv_fields[] = '#'; $csv_fields[] = 'Student Name'; $csv_fields[] = 'Student Email'; $csv_fields[] = 'Course Name'; $csv_fields[] = 'Quiz Name'; $csv_fields[] = 'Total Questions'; $csv_fields[] = 'Correct Answer'; $csv_fields[] = 'Percentage Received'; $csv_fields[] = 'Comments Received'; $csv_fields[] = 'Time Spent'; $csv_fields[] = 'Submitted On'; $output_handle=''; $output_filename = 'quiz_csv.csv'; $output_handle = @fopen( 'php://output', 'w' ); header( 'Cache-Control: must-revalidate, post-check=0, pre-check=0' ); header( 'Content-Description: File Transfer' ); header( 'Content-type: text/csv' ); header( 'Content-Disposition: attachment; filename=' . $output_filename ); header( 'Expires: 0' ); header( 'Pragma: public' ); fputcsv( $output_handle, $csv_fields ); if( $row !== false && $row->num_rows > 0 ) { $count=0; while( $data = $row->fetch_assoc() ) { ++$count; $make_sql="SELECT cfqr.* FROM `".$student_quiz."` cfsq LEFT JOIN `".$quiz_response."` as cfqr ON cfsq.`id`=cfqr.`response_id` WHERE cfsq.`member_id`=".$data['member_id'].""; $qry2=$mysqli->query($make_sql); $outputrray=array($count); array_push($outputrray,$data['name']); array_push($outputrray,$data['email']); array_push($outputrray,$data['title']); array_push($outputrray,base64_decode($data['quiz_title'])); array_push($outputrray,$data['no_of_questions']); array_push($outputrray,$data['no_correct_answers']); array_push($outputrray,$data['percentage']."%"); array_push($outputrray,$data['comment']); array_push($outputrray,$data['time_spent']); array_push($outputrray,$data['submitted_on']); fputcsv($output_handle,$outputrray); } } fclose($output_handle); die(); } } function exportToCSVQUIZ_AN() { if( isset( $_POST['quizto_csv_an'] ) ) { global $mysqli; global $dbpref; $student_quiz = $dbpref."stud_quiz";// in this table only percentage, scror , kab submit, kiya name, email etc enter honge $quiz_response= $dbpref."submit_quiz";// in this table only all question, unke correct answer, and student ke answer hoge enter hoge $content_table= $dbpref."content_options"; $course_table= $dbpref."all_products"; $sql = "SELECT cfsq.*, cfc.`title`, cfq.`title` as 'quiz_title' FROM `".$student_quiz."` as cfsq LEFT JOIN `".$course_table."` as cfc ON cfc.`id`=cfsq.`course_id` LEFT JOIN `".$content_table."` as cfq ON cfq.`id`=cfsq.`quiz_id`"; $row = $mysqli->query($sql); $csv_fields=array(); $csv_fields[] = '#'; $csv_fields[] = 'STUDENTS NAME'; $csv_fields[] = 'STUDENT EMAIL'; $csv_fields[] = 'COURSE NAME'; $csv_fields[] = 'QUIZ NAME'; $csv_fields[] = 'Total Questions'; $csv_fields[] = 'Correct Answer'; $csv_fields[] = 'Percentage Received'; $csv_fields[] = 'Comments Received'; $csv_fields[] = 'Time Spent'; $csv_fields[] = 'Submitted On'; $output_handle=''; $output_filename = 'export_qa.csv'; $output_handle = @fopen( 'php://output', 'w' ); header( 'Cache-Control: must-revalidate, post-check=0, pre-check=0' ); header( 'Content-Description: File Transfer' ); header( 'Content-type: text/csv' ); header( 'Content-Disposition: attachment; filename=' . $output_filename ); header( 'Expires: 0' ); header( 'Pragma: public' ); fputcsv( $output_handle, $csv_fields ); if( $row !== false && $row->num_rows > 0 ) { $count=0; while($data = $row->fetch_assoc()) { ++$count; $make_sql="SELECT cfqr.* FROM `".$student_quiz."` cfsq LEFT JOIN `".$quiz_response."` as cfqr ON cfsq.`id`=cfqr.`response_id` WHERE cfsq.`member_id`=".$data['member_id'].""; $qry2=$mysqli->query($make_sql); $outputrray=array($count); array_push($outputrray,$data['name']); array_push($outputrray,$data['email']); array_push($outputrray,$data['title']); array_push($outputrray,base64_decode($data['quiz_title'])); array_push($outputrray,$data['no_of_questions']); array_push($outputrray,$data['no_correct_answers']); array_push($outputrray,$data['percentage']."%"); array_push($outputrray,$data['comment']); array_push($outputrray,$data['time_spent']); array_push($outputrray,$data['submitted_on']); fputcsv($output_handle,$outputrray); $new=[]; $cnt=0; array_push($new,''); array_push($new,'QUESTIONS NUMBER'); array_push($new,'QUESTIONS'); array_push($new,'STUDENT ANSWERS'); array_push($new,'TEACHER ANSWERS'); fputcsv( $output_handle, $new ); while( $rows = $qry2->fetch_assoc() ) { $s_an=''; $t_an=''; $anss = json_decode($rows['options']); foreach( $anss as $in => $an ) { if($rows['student_answer'] == "cf".$in) { $s_an = base64_decode($an); } } foreach($anss as $in=> $an) { if( $rows['correct_answer'] == "cf".$in) { $t_an = base64_decode($an); } } $ne=[]; array_push($ne,''); array_push($ne,++$cnt); array_push($ne,strip_tags(base64_decode( $rows['questions']))); array_push($ne,$s_an); array_push($ne,$t_an); fputcsv($output_handle,$ne); } } } fclose($output_handle); die(); } } }//class ends }//if exist class ends