| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558 |
- <?php
- include "Connection.php";
- $conn = new Connection();
- if(isset($_REQUEST["funName"])) {
- $db = $conn->getConnection();
- $fun = $_REQUEST["funName"];
- switch($fun) {
-
- case "questionlist":
- case "addquestion":
- case "editquestion":
- case "deletequestion":
- case "questionoptionlist":
- case "questiondetails":
- $fun();
- break;
-
- }
- }
-
- // QUESTION LIST
- function questionlist() {
- global $conn;
- try{
- $lang = (isset($_REQUEST["lang"]))?$_REQUEST["lang"]:'en_us';
- //$pageData = $conn->loadJSON($lang);
- $pn = escape_str($_REQUEST["pn"]);
- $nr = escape_str($_REQUEST["nr"]);
- $key = escape_str($_REQUEST["key"]);
- $cateid = escape_str($_REQUEST['cateid']);
-
-
- if(isset($_SESSION["userid"])) {
-
- // Search
- if (!empty($key)) {
- $econd= " AND ((a.questiontext like '%".$key."%') OR (f.questiontype like '%$key%') ) ";
- }
-
- if ($cateid!='') {
- $econd.= " and a.cateid='".$cateid."'";
- }
-
- $certified = escape_str($_REQUEST['certified']);
- if ($certified!='') {
- $econd.= " and a.cateid>'0'";
- }
-
- $tag = escape_str($_REQUEST['tag']);
- if ($tag!='') {
- $econd.= " and a.tag='".$tag."'";
- }
-
- $selectstr = "SELECT SQL_CALC_FOUND_ROWS a.id,a.id as qid,a.cateid,a.questiontypeid, a.tag, a.`questiontext`, a.`qimage`, a.`qvideo`, a.`creatorid`, a.`status`,f.questiontype FROM ".TABLE_QUESTION." a INNER JOIN " . TABLE_QUESTIONTYPE . " f ON f.id = a.questiontypeid WHERE 1=1 ".$econd." ORDER BY a.id DESC";
-
- // Pagination
- if (!empty($pn) and !empty($nr)) {
- // Navigation
- $selectstr .= " limit " . (($pn - 1) * $nr) . ", " . $nr;
- }
- $query = $conn->query($selectstr);
- // Total records
- $rows_query = $conn->query("select FOUND_ROWS() as total_records");
- $rows_result = $rows_query->fetchAll(PDO::FETCH_OBJ);
- $total_records = $rows_result[0]->total_records;
-
- $question_arr=$query->fetchAll(PDO::FETCH_OBJ);
-
- if(count($question_arr)>0)
- {
- require_once (dirname(__FILE__).'/awsfileserver.php');
- $s3=awsfileserver::connectS3();
- foreach($question_arr as $qkey=>$res_ques)
- {
- $check_ques_str = "SELECT * FROM ".TABLE_ASSESSMENT_QUESTION." WHERE qid = '".$res_ques->id."' LIMIT 1";
- $check_ques_query = $conn->query($check_ques_str);
- $question_arr[$qkey]->is_edit=($check_ques_query->rowCount()>0)?"0":"1";
-
- $image_url='';
- if($res_ques->qimage!='')
- {
- $obj = new stdClass();
- $obj->key_name=S3_QUESTION_URL.$res_ques->qimage;
- $url=awsfileserver::getS3Url($s3,S3_BUCKET,$obj);
- $image_url=$url;
- }
- $question_arr[$qkey]->qimage_url=$image_url;
-
- $video_url='';
- if($res_ques->qvideo!='')
- {
- $obj = new stdClass();
- $obj->key_name=S3_QUESTION_URL.$res_ques->qvideo;
- $url=awsfileserver::getS3Url($s3,S3_BUCKET,$obj);
- $video_url=$url;
- }
- $question_arr[$qkey]->qvideo_url=$video_url;
-
- switch($res_ques->questiontypeid)
- {
- case '1':
- case '2':
- $question_arr[$qkey]->type='1';
- break;
- case '3':
- case '4':
- case '5':
- case '6':
- $question_arr[$qkey]->type='2';
- break;
- }
-
- }
- }
- $arr['total_records'] = $total_records;
- $arr['questions'] = $question_arr;
-
- if(count($arr) != 0)
- {
- $conn->message(true,$conn->getMessage($lang,'question','success1'),$arr );
- }else{
- $conn->message(false,$conn->getMessage($lang,'question','error3'));
- }
- }else{
- $conn->message(false,$conn->getMessage($lang,'question','error1'));
- }
- }catch(PDOException $e){
- $conn->message(false,$conn->getMessage($lang,'question','error4'));
- }
- }
- // ADD QUESTION
- function addquestion() {
- global $conn;
- try {
- $lang = (isset($_REQUEST["lang"]))?$_REQUEST["lang"]:'en_us';
-
- if(isset($_SESSION["userid"])){
-
- $userid = $_SESSION["userid"];
- $questiontext = escape_str($_REQUEST["questiontext"]);
- $questiontypeid = escape_str($_REQUEST["questiontypeid"]);
- $cateid= (isset($_REQUEST["cateid"]))?escape_str($_REQUEST["cateid"]):'0';
- $tag = escape_str($_REQUEST["tag"]);
-
- if(!($questiontext!='' && $questiontypeid!='' && $tag!='')) $conn->message(false,"Data Missing");
-
- $childs = (isset($_REQUEST["child"]) && in_array($questiontypeid,array('1','2','5','6')))?json_decode($_REQUEST["child"]):array();
- //$supplierid = (in_array($questiontypeid,array('1','2')))?$supplierid:0;
-
- switch($questiontypeid)
- {
- case "1":
- case "2":
- case "5":
- case "6":
- if(!(count($childs)>0 && is_array($childs))){ $conn->message(false,$conn->getMessage($lang,'question','error5')); }
-
- $is_correct=0;
- if(count($childs)>0)
- {
- for($n = 0;$n < count($childs);$n++)
- {
- if(isset($childs[$n]->iscorrect) && $childs[$n]->iscorrect=='1'){ $is_correct=1; }
- }
- if( $is_correct=='0' && $questiontypeid<5){ $conn->message(false,$conn->getMessage($lang,'question','error6')); }
- }
- break;
- case "3":
- case "4":
- break;
- }
-
- $insertstr = "INSERT INTO ".TABLE_QUESTION." ( questiontext, questiontypeid,cateid,tag,status, creatorid, created_on, modified_on) VALUES('".$questiontext."', '".$questiontypeid."','".$cateid."','".$tag."', '1', '".$userid."', '".NOW."', '".NOW."')";
- $insertquery = $conn->query($insertstr);
- $insertid = $conn->lastinsetid();
-
- // FILE UPLOAD
- if(isset($_FILES['file']) && $_FILES['file']['name']) {
- // S3 UPLOAD
- require_once (dirname(__FILE__).'/awsfileserver.php');
- $file_name = $_FILES['file']['name'];
- $fileParts = pathinfo($file_name);
- $fileExtension = strtolower($fileParts['extension']);
- $filetype = $fileExtension;
- $obj = new stdClass();
- $obj->filekey = 'file';
- //S3 OBJ
- $s3 = awsfileserver::connectS3();
- if($filetype != 'mp4')
- {
- $obj->size = '10'; //IN MB
- $obj->type = array('jpg','jpeg','png');
- $conn->validateFile($obj);
- $obj->path = "../".S3_QUESTION_URL;
- $obj->filename = 'question_image_'.date('Ymd')."_".uniqid();
- $qimage = $conn->uploadFile($obj);
-
- awsfileserver::checkupload($s3,S3_BUCKET,S3_QUESTION_URL.$qimage,dirname(__FILE__)."/../".S3_QUESTION_URL.$qimage);
- //DELETE AFTER MOVE TO S3
- @unlink(dirname(__FILE__).'/../'.S3_QUESTION_URL.$qimage);
-
- $updatestr = "UPDATE ".TABLE_QUESTION." SET qimage = '".$qimage."' WHERE id='".$insertid."'";
- }
- else {
- $obj->size = '512';
- $obj->type = array('mp4');
- $conn->validateFile($obj);
- $obj->path = "../".S3_QUESTION_URL;
- $obj->filename = 'question_video_'.date('Ymd')."_".uniqid();
- $qvideo = $conn->uploadFile($obj);
-
- awsfileserver::checkupload($s3,S3_BUCKET,S3_QUESTION_URL.$qvideo,dirname(__FILE__)."/../".S3_QUESTION_URL.$qvideo);
- //DELETE AFTER MOVE TO S3
- @unlink(dirname(__FILE__).'/../'.S3_QUESTION_URL.$qvideo);
-
- $updatestr = "UPDATE ".TABLE_QUESTION." SET qvideo = '".$qvideo."' WHERE id='".$insertid."'";
- }
- $updatequery = $conn->query($updatestr);
- }
- // Question options data inserting
- if((in_array($questiontypeid,array('1','2','5','6'))))
- {
- if($childs) {
- for($id = 0;$id < count($childs);$id++){
-
- $iscorrect = (isset($childs[$id]->iscorrect) && $childs[$id]->iscorrect=='1')?"1":"0";
- $opttext = escape_str($childs[$id]->opttext);
- $score = $childs[$id]->score;
-
- $choiceinsert_arr[] = " ('".$insertid."','".$opttext."','".$score."','".$iscorrect."','".$userid."','".NOW."','".NOW."')";
- }
- $choiceinsertstr = "INSERT INTO ".TABLE_QUESTIONOPTION." (qid, opttext, score, iscorrect, creatorid, created_on, modified_on) VALUES ".@implode(',',$choiceinsert_arr);
- $choiceinsertquery = $conn->query($choiceinsertstr);
- }
- }
-
- $conn->message(true,$conn->getMessage($lang,'question','success1'),getQuestion ($insertid));
-
- }
- else {
- $conn->message(false,$conn->getMessage($lang,'question','error1'));
- }
- }catch(PDOException $e){
- echo $e;
- $conn->message(false,$conn->getMessage($lang,'question','error4'));
- }
- }
- // UPDATE QUESTION
- function editquestion() {
- global $conn;
- try {
- $lang = (isset($_REQUEST["lang"]))?$_REQUEST["lang"]:'en_us';
-
- if(isset($_SESSION["userid"])){
-
- $id = escape_str($_REQUEST["id"]);
- $userid = $_SESSION["userid"];
- //$supplierid = $_REQUEST["supplierid"];
- $questiontext = escape_str($_REQUEST["questiontext"]);
- $questiontypeid = escape_str($_REQUEST["questiontypeid"]);
- $childs = (isset($_REQUEST["child"]))?json_decode($_REQUEST["child"]):array();
- $cateid= (isset($_REQUEST["cateid"]))?escape_str($_REQUEST["cateid"]):'0';
- $tag = escape_str($_REQUEST["tag"]);
-
- if(!($questiontext!='' && $questiontypeid!='' && $tag!='' && $id!='')) $conn->message(false,"Data Missing");
-
- switch($questiontypeid)
- {
- case "1":
- case "2":
- case "5":
- case "6":
- if(!(count($childs)>0 && is_array($childs))){ $conn->message(false,$conn->getMessage($lang,'question','error5'));}
-
- $is_correct=0;
- if(count($childs)>0)
- {
- for($n = 0;$n < count($childs);$n++)
- {
- if(isset($childs[$n]->iscorrect) && $childs[$n]->iscorrect=='1'){ $is_correct=1; }
-
- }
- if( $is_correct=='0' && $questiontypeid<5){ $conn->message(false,$conn->getMessage($lang,'question','error6'));}
- }
- break;
- case "3":
- case "4":
- break;
- }
-
-
- $check_ques_str = "SELECT * FROM ".TABLE_QUESTION." WHERE id = '".$id."' LIMIT 1";
- $check_ques_arr=$conn->getQueryValue($check_ques_str);
-
- if(!(count($check_ques_arr)>0)) $conn->message(false,$conn->getMessage($lang,'question','error9'));
- // FILE UPLOAD
- if(isset($_FILES['file']) && $_FILES['file']['name']) {
- // S3 UPLOAD
- require_once (dirname(__FILE__).'/awsfileserver.php');
- $file_name = $_FILES['file']['name'];
- $fileParts = pathinfo($file_name);
- $fileExtension = strtolower($fileParts['extension']);
- $filetype = $fileExtension;
- $obj = new stdClass();
- $obj->filekey = 'file';
-
- $s3 = awsfileserver::connectS3();
- if($filetype != 'mp4') {
- $obj->size = '10'; //IN MB
- $obj->type = array('jpg','jpeg','png');
- $conn->validateFile($obj);
- $obj->path = "../".S3_QUESTION_URL;
- $obj->filename = 'question_image_'.date('Ymd')."_".uniqid();
- $qimage = $conn->uploadFile($obj);
-
- awsfileserver::checkupload($s3,S3_BUCKET,S3_QUESTION_URL.$qimage,dirname(__FILE__)."/../".S3_QUESTION_URL.$qimage);
- //DELETE AFTER MOVE TO S3
- @unlink(dirname(__FILE__).'/../'.S3_QUESTION_URL.$qimage);
- $updatestr = "UPDATE ".TABLE_QUESTION." SET qimage = '".$qimage."' WHERE id='".$id."'";
-
- if($check_ques_arr[0]->qimage!='')
- {
- //awsfileserver::deleteobject($s3,S3_BUCKET,S3_QUESTION_URL.$check_ques_arr[0]->qimage);
- }
- }
- else
- {
- $obj->size = '512';
- $obj->type = array('mp4');
- $conn->validateFile($obj);
- $obj->path = "../".S3_QUESTION_URL;
- $obj->filename = 'question_video_'.date('Ymd')."_".uniqid();
- $qvideo = $conn->uploadFile($obj);
-
- awsfileserver::checkupload($s3,S3_BUCKET,S3_QUESTION_URL.$qvideo,dirname(__FILE__)."/../".S3_QUESTION_URL.$qvideo);
-
- //DELETE AFTER MOVE TO S3
- @unlink(dirname(__FILE__).'/../'.S3_QUESTION_URL.$qvideo);
- $updatestr = "UPDATE ".TABLE_QUESTION." SET qvideo = '".$qvideo."' WHERE id='".$id."'";
-
- if($check_ques_arr[0]->qvideo!='')
- {
- //awsfileserver::deleteobject($s3,S3_BUCKET,S3_QUESTION_URL.$check_ques_arr[0]->qvideo);
- }
- }
- $updatequery = $conn->query($updatestr);
- }
-
- $upddate_str = "UPDATE ".TABLE_QUESTION." SET cateid='".$cateid."',questiontext='".$questiontext."',tag='".$tag."',questiontypeid='".$questiontypeid."', creatorid='".$userid."', modified_on = '".NOW."' ".$updatecond." WHERE id='".$id."'";
- $insertquery = $conn->query($upddate_str);
-
- //DELETE OPTIONS
- $deleteoptstr = "DELETE FROM ".TABLE_QUESTIONOPTION." WHERE qid = '".$id."'";
- $deleteoptquery = $conn->query($deleteoptstr);
- $qid=$id;
- if((in_array($questiontypeid,array('1','2','5','6'))))
- {
- if($childs) {
- for($id = 0;$id < count($childs);$id++){
- $iscorrect = (isset($childs[$id]->iscorrect)&& $childs[$id]->iscorrect=='1')?"1":"0";
- $opttext = escape_str($childs[$id]->opttext);
- $score = $childs[$id]->score;
-
- $choiceinsert_arr[] = " ('".$qid."','".escape_str($opttext)."','".$score."','".$iscorrect."','".$userid."','".NOW."','".NOW."')";
- }
- $choiceinsertstr = "INSERT INTO ".TABLE_QUESTIONOPTION." (qid, opttext, score, iscorrect, creatorid, created_on, modified_on) VALUES ".@implode(',',$choiceinsert_arr);
- $choiceinsertquery = $conn->query($choiceinsertstr);
- }
- }
-
- $conn->message(true,$conn->getMessage($lang,'question','success1'),getQuestion ($qid));
- }else{
- $conn->message(false,$conn->getMessage($lang,'question','error1'));
- }
- }catch(PDOException $e){
- $conn->message(false,$conn->getMessage($lang,'question','error4'));
- }
- }
- // DELETE QUESTION
- function deletequestion() {
- global $conn;
- try {
- $lang = (isset($_REQUEST["lang"]))?$_REQUEST["lang"]:'en_us';
- if(isset($_SESSION["userid"]))
- {
- $userid = $_SESSION["userid"];
- $id = escape_str($_REQUEST["id"]);
-
-
- $selectassessstr = "SELECT * FROM ".TABLE_ASSESSMENT_QUESTION." WHERE qid='".$id."' LIMIT 1";
- $selectassessquesy = $conn->query($selectassessstr);
- if($selectassessquesy->rowCount() == 0)
- {
- $selectquest = "SELECT * FROM ".TABLE_ASSESSMENT_USERRESULT." WHERE qid='".$id."'";
- $selectquery = $conn->query($selectquest);
- if($selectquery->rowCount() == 0) {
- $delete1 = $conn->query("DELETE FROM ".TABLE_QUESTION." WHERE id='".$id."'");
- $selectstr = "SELECT * FROM ".TABLE_QUESTIONOPTION." WHERE qid='".$id."'";
- $selectquery = $conn->query($selectstr);
- $arr = $selectquery->fetchAll(PDO::FETCH_OBJ);
- $conn->message(true,$conn->getMessage($lang,'question','success1') );
- }
- else{
- $conn->message(false,$conn->getMessage($lang,'question','error8'));
- }
-
- $ques_arr=$conn->getQueryValue($selectassessstr);
- //S3 IMAGE REMOVE
- $s3 = awsfileserver::connectS3();
- if($ques_arr[0]->qimage!='')
- {
- // awsfileserver::deleteobject($s3,S3_BUCKET,S3_QUESTION_URL.$ques_arr[0]->qimage);
- }
- //S3 VIDEO REMOVE
- if($ques_arr[0]->qvideo!='')
- {
- //awsfileserver::deleteobject($s3,S3_BUCKET,S3_QUESTION_URL.$ques_arr[0]->qvideo);
- }
- }else{
- $conn->message(false,$conn->getMessage($lang,'question','error7'));
- }
-
- }else{
- $conn->message(false,$conn->getMessage($lang,'question','error1'));
- }
- }
- catch(PDOException $e) {
- $conn->message(false,$conn->getMessage($lang,'question','error4'));
- }
- }
- // Question Option List
- function questionoptionlist() {
- global $conn;
- try {
- $lang = (isset($_REQUEST["lang"]))?$_REQUEST["lang"]:'en_us';
-
- if(isset($_SESSION["userid"]))
- {
- $id = escape_str($_REQUEST["id"]);
- $selectstr = "SELECT * FROM " . TABLE_QUESTIONOPTION . " WHERE qid='".$id."'";
- $selectquery = $conn->query($selectstr);
- $arr = $selectquery->fetchAll(PDO::FETCH_OBJ);
-
- if(!count($arr)>0)
- {
- $arr=array();
- }
- $conn->message(true,$conn->getMessage($lang,'question','success1'),$arr );
- }
- else {
- $conn->message(false,$conn->getMessage($lang,'question','error1'));
- }
- }
- catch(PDOException $e) {
- $conn->message(false,$conn->getMessage($lang,'question','error4'));
- }
- }
- // GET QUESTION
- function getQuestion($qid)
- {
- global $conn;
- $data_arr=array();
- if($qid!='')
- {
- require_once (dirname(__FILE__).'/awsfileserver.php');
- $s3=awsfileserver::connectS3();
-
- $data_arr=$conn->getQueryValue( "SELECT a.id,a.id as qid,a.questiontypeid,a.cateid, a.tag,a.`questiontext`, a.`qimage`, a.`qvideo`, a.`creatorid`, a.`status`,f.questiontype FROM ".TABLE_QUESTION." a INNER JOIN " . TABLE_QUESTIONTYPE . " f ON f.id = a.questiontypeid WHERE a.id='".$qid."' LIMIT 1");
-
- if(count($data_arr)>0)
- {
- $check_ques_str = "SELECT * FROM ".TABLE_ASSESSMENT_QUESTION." WHERE qid = '".$qid."' LIMIT 1";
- $check_ques_query = $conn->query($check_ques_str);
- $data_arr[0]->is_edit=($check_ques_query->rowCount()>0)?"0":"1";
- }
-
- $image_url='';
- if($data_arr[0]->qimage!='')
- {
- $obj = new stdClass();
- $obj->key_name=S3_QUESTION_URL.$data_arr[0]->qimage;
- $url=awsfileserver::getS3Url($s3,S3_BUCKET,$obj);
- $image_url=$url;
- }
- $data_arr[0]->qimage_url=$image_url;
- $video_url='';
- if($data_arr[0]->qvideo!='')
- {
- $obj = new stdClass();
- $obj->key_name=S3_QUESTION_URL.$data_arr[0]->qvideo;
- $url=awsfileserver::getS3Url($s3,S3_BUCKET,$obj);
- $video_url=$url;
- }
- $data_arr[0]->qvideo_url=$video_url;
-
- $data_arr=(count($data_arr)>0)?$data_arr[0]:array();
- }
- return $data_arr;
- }
- // Question
- function questiondetails() {
- global $conn;
- try {
- $lang = (isset($_REQUEST["lang"]))?$_REQUEST["lang"]:'en_us';
-
- if(isset($_SESSION["userid"]))
- {
- $id = escape_str($_REQUEST["id"]);
-
- $selectstr = "SELECT a.id,a.id as qid,a.cateid,a.questiontypeid, a.tag, a.`questiontext`, a.`qimage`, a.`qvideo`, a.`creatorid`, a.`status`,f.questiontype FROM ".TABLE_QUESTION." a INNER JOIN " . TABLE_QUESTIONTYPE . " f ON f.id = a.questiontypeid WHERE a.id='".$id."' LIMIT 1";
- $query = $conn->query($selectstr);
- $arr = $query->fetchAll(PDO::FETCH_OBJ);
-
- if(count($arr)>0)
- {
- $selectstr = "SELECT * FROM " . TABLE_QUESTIONOPTION . " WHERE qid='".$id."'";
- $selectquery = $conn->query($selectstr);
- $options = $selectquery->fetchAll(PDO::FETCH_OBJ);
- $arr[0]->options=(count($options)>0)?$options:array();
- }else
- {
- $arr=array();
- }
- $conn->message(true,$conn->getMessage($lang,'question','success1'),$arr );
- }
- else {
- $conn->message(false,$conn->getMessage($lang,'question','error1'));
- }
- }
- catch(PDOException $e) {
- $conn->message(false,$conn->getMessage($lang,'question','error4'));
- }
- }
- ?>
|