Sindbad~EG File Manager
<?php
class MCQController extends BaseController {
/*
|--------------------------------------------------------------------------
| Default Home Controller
|--------------------------------------------------------------------------
|
| You may wish to use controllers instead of, or in addition to, Closure
| based routes. That's great! Here is an example controller method to
| get you started. To route to this controller, just add the route:
|
| Route::get('/', 'HomeController@showWelcome');
|
*/
// updated by Ganesan on 02-Jan-2022
public function GetNonExamUpdate($session_id,$session_key,$course_id)
{
try
{
$enc_course_id = $course_id;
$user_id = Auth::User()->user_id;
if(isset($course_id))
{
$course_id = intval(urldecode(Helper::decrypt($course_id)));
$results = Course::where('course_id',$course_id)->first();
return View::make('exam_category_update')->with('session_id',$session_id)->with('session_key',$session_key)->with('course_id',$course_id)->with('user_id',$user_id)->with('results' ,$results);
}
}
catch (Exception $e) {
Log::error('MCQController - GetNonExamUpdate : '.$e->getMessage());
Session::flash('msg', AppMessage::$GENERAL_ERROR);
return $this->msg($session_id,$session_key);
}
}
public function PostNonExamUpdate($session_id,$session_key)
{
try
{
$course_id = Input::get('course_id');
$user_id = Input::get('user_id');
$is_non_exam_category = Input::get('is_non_exam_category');
$user_id = Auth::User()->user_id;
if(isset($course_id))
{
$user_course = MCQUsersCourses::where('user_id',$user_id)->where('course_id',$course_id)->first();
if(isset($user_course))
{
$user_course->user_id = $user_id;
$user_course->course_id = $course_id;
$user_course->is_non_exam_category = $is_non_exam_category;
$user_course->updated_at = date('Y-m-d H:i:s');
$user_course->save();
}
else
{
$user_course = new MCQUsersCourses;
$user_course->user_id = $user_id;
$user_course->course_id = $course_id;
$user_course->is_non_exam_category = $is_non_exam_category;
$user_course->created_at = date('Y-m-d H:i:s');
$user_course->save();
}
return Redirect::to('/'.$session_id.'/'.$session_key);
// $results = Course::where('course_id',$course_id)->first();
// return View::make('exam_category_update')->with('course_id',$course_id)->with('user_id',$user_id)->with('results' ,$results);
}
}
catch (Exception $e) {
Log::error('MCQController - GetNonExamUpdate : '.$e->getMessage());
Session::flash('msg', AppMessage::$GENERAL_ERROR);
return $this->msg($session_id,$session_key);
}
}
//
// update code on June 25 2022
public function QuestionIndex($course_id)
{
$answer_status = Input::get('status');
$session = Sessions::getSession();
$session_id = 0;
$session_key = '';
if(isset($session))
{
// $in_session_id = $session->session_id;
$session_id = $session->session_id;
$session_key = $session->session_key;
}
else
{
return $this->ClosedPage();
};
try
{
$enc_course_id = $course_id;
$user_id = Auth::User()->user_id;
if(isset($course_id))
{
$course_id = intval(urldecode(Helper::decrypt($course_id)));
}
if(isset($mcq_id))
{
$mcq_id = intval(urldecode(Helper::decrypt($mcq_id)));
}
$course = MCQCourse::find($course_id);
if(isset($course) )
{
if(!Helper::checkBetweenDatetimesFromCurrentDateTime($course->course_start_at,$course->course_end_at))
{
Session::flash('msg', "Session Closed");
return $this->msg($session_id,$session_key);
}
else
{
if(!isset($answer_status))
{
// $answer_status = "notanswer";
$answer_status = NULL;
}
$results = DB::select("call usp_get_user_course_questions(".$session_id." ,".$course_id.",".$user_id." ,'". $answer_status."' )");
$courses = MCQCourse::getUserCourses($session->session_id,Auth::User()->user_id,$course_id);
return View::make('question_index')->with('course',$course)
->with('session',$session)
->with('course_id',$course_id)
->with('user_id',$user_id)
->with('results',$results)
->with('enc_course_id',$enc_course_id)
->with('courses',$courses[0])
->with('answer_status',$answer_status);
}
}
else
{
Session::flash('msg', AppMessage::$GENERAL_ERROR);
return $this->msg($session_id,$session_key);
}
} catch (Exception $e) {
Log::error('MCQController - QuestionIndex : '.$e->getMessage());
Session::flash('msg', AppMessage::$GENERAL_ERROR);
return $this->msg($session_id,$session_key);
}
}
// end
public function index($session_id,$session_key)
{
if(isset($session_key))
{
Session::put('session_key', $session_key);
Session::put('session_id', $session_id);
}
else
{
Session::forget('session_key');
Session::forget('session_id');
}
$session = Sessions::getSession();
if(isset($session))
{
if(Auth::check())
{
$user = User::find(Auth::User()->user_id);
if($user->profile_updated_at==null)
{
return Redirect::to('profile/'.$session_id.'/'.$session_key);
}
else
{
// return View::make('index'); // This is already commented
return $this->userCourses($session_id,$session_key);
}
}
else
{
return View::make('login');
}
}
else
{
// return $this->ClosedPage();
Session::flash('msg', AppMessage::$EndSession);
return Redirect::to('msg');
// return $this->msg($session_id,$session_key);
}
}
public function userCourses($session_id,$session_key)
{
$session = Sessions::getSession();
$user_id = Auth::User()->user_id ;
$courses = MCQCourse::getUserCourses($session_id,$user_id);
// var_dump($courses);exit();
return View::make('courses')->with('courses',$courses);
}
public function MCQRandomGet($course_id,$mcq_id=null,$is_skips = null,$prev_mcq_id = null,$answer_status = null)
{
$session = Sessions::getSession();
$session_id = 0;
$session_key = '';
if(isset($session))
{
// $in_session_id = $session->session_id;
$session_id = $session->session_id;
$session_key = $session->session_key;
}
else
{
return $this->ClosedPage();
};
try
{
$user_id = Auth::User()->user_id;
$answer_status = Input::get('answer_status');
// $is_skips = null;
if($answer_status == 'skipped')
{
$is_skips = 1;
}
if(isset($course_id))
{
$course_id = intval(urldecode(Helper::decrypt($course_id)));
}
if(isset($mcq_id))
{
$mcq_id = intval(urldecode(Helper::decrypt($mcq_id)));
}
if(Input::get('is_refresh')=="1"){
$mcq_id=null;
}
// $session = Sessions::getSession();
$course = MCQCourse::find($course_id);
if(isset($course) )
{
if(!Helper::checkBetweenDatetimesFromCurrentDateTime($course->course_start_at,$course->course_end_at))
{
Session::flash('msg', "Session Closed");
return $this->msg($session_id,$session_key);
}
}
else
{
Session::flash('msg', AppMessage::$GENERAL_ERROR);
return $this->msg($session_id,$session_key);
}
if(isset($session))
{
$in_session_id = $session->session_id;
$in_user_id = $user_id;
// $in_mcq_limit = null;
$in_mcq_limit = $course->course_question_limit;
$in_mcq_id = $mcq_id;
$in_course_id = $course_id;
// var_dump($in_session_id,$in_course_id,$in_user_id,$in_mcq_id,$answer_status);
// exit;
$result = MCQ::usp_get_questions_traverse($in_session_id,$in_course_id,$in_user_id,$in_mcq_id,$answer_status);
// $result = MCQ::usp_get_random_MCQ_Course($in_session_id,$in_course_id,$in_user_id,$in_mcq_limit,$in_mcq_id,$is_skips,$prev_mcq_id);
$mcq = $result["mcq"];
$prev_mcq_id = $result["previous_mcq_id"];
$next_mcq_id = $result["next_mcq_id"];
// var_dump($in_mcq_limit);
// var_dump($in_mcq_id);
// echo "NEXT QUESTION NUMBER";
// var_dump($next_mcq_id);
// exit();
// var_dump($prev_mcq_id);
// exit();
$mcq_id = $mcq->mcq_id;
// $mcq->order_no = $mcq->s_no;
// $in_user_id = $result["next_mcq_id"];
// $in_mcq_limit = $result["previous_mcq_id"];
$mcq_count = $in_mcq_limit;
//$mcq_count = Quiz::where('session_id',$session->session_id)->count();
$mcq_options=MCQOptions::where('mcq_id',$mcq->mcq_id)->get();
// $mcq_user_answer = MCQUserAnswer::where('user_id',$user_id)->where('mcq_id',$mcq_id)->first();
$opened_at = Helper::encrypt(date('Y-m-d H:i:s'));
return View::make('mcq')->with('mcq',$mcq)
->with('session',$session)
->with('mcq_options',$mcq_options)
->with('mcq_count',$mcq_count)
->with('user_id',$user_id)
// ->with('mcq_user_answer',$mcq_user_answer)
->with('opened_at',$opened_at)
->with('course_id',$course_id)
->with('course',$course)
->with('is_skips',$is_skips)
->with('prev_mcq_id',$prev_mcq_id)
->with('next_mcq_id',$next_mcq_id)
->with('answer_status',$answer_status);
}
else
{
return $this->ClosedPage();
}
} catch (Exception $e) {
Log::error('MCQController - MCQRandomGet : '.$e->getMessage());
Session::flash('msg', AppMessage::$GENERAL_ERROR);
return $this->msg($session_id,$session_key);
}
}
public function MCQRandomPost($course_id,$mcq_id)
{
$session = Sessions::getSession();
$session_id = 0;
$session_key = '';
if(isset($session))
{
// $in_session_id = $session->session_id;
$session_id = $session->session_id;
$session_key = $session->session_key;
}
else
{
return $this->ClosedPage();
};
try
{
$user_id = Auth::User()->user_id;
$is_skips = Input::get('is_skips');
$submit_btn = Input::get('submit_btn');
$is_skip = Input::get('is_skip'); // integer value
$answer_status_1 = Input::get('answer_status');
$prev_mcq_id = Input::get('prev_mcq_id');
$next_mcq_id = Input::get('next_mcq_id');
if(isset($course_id))
{
$course_id = intval(urldecode(Helper::decrypt($course_id)));
}
if(isset($mcq_id))
{
$mcq_id = intval(urldecode(Helper::decrypt($mcq_id)));
}
$mcq_option_id = Input::get('user_option');
$answer = Input::get("answer_$mcq_option_id");
$opened_at = Input::get('opened_at');
$opened_at = isset($opened_at)?Helper::decrypt($opened_at):null;
$answered_at = date('Y-m-d H:i:s');
$timeFirst = strtotime($opened_at);
$timeSecond = strtotime($answered_at);
$differenceInSeconds = $timeSecond - $timeFirst;
$duration = $differenceInSeconds;
$session = Sessions::getSession();
$course = MCQCourse::find($course_id);
if(isset($course) )
{
if(!Helper::checkBetweenDatetimesFromCurrentDateTime($course->course_start_at,$course->course_end_at))
{
Session::flash('msg', "Session Closed");
return $this->msg($session_id,$session_key);
}
}
else
{
Session::flash('msg', AppMessage::$GENERAL_ERROR);
return $this->msg($session_id,$session_key);
}
if(isset($session))
{
$in_session_id = $session->session_id;
$in_user_id = $user_id;
$in_mcq_limit = $course->course_question_limit;
$in_mcq_id = $mcq_id;
$in_course_id = $course_id;
if(intval(Input::get('is_next'))==0)
{
Input::replace(['is_refresh' => '0']);
if(isset($prev_mcq_id) && intval($prev_mcq_id) >0)
{
//return Redirect::to('mcq/'.Helper::encrypt($mcq_prev->mcq_id).'/'.Helper::encrypt($user_id));
return $this->MCQRandomGet(Helper::encrypt($course_id),Helper::encrypt($prev_mcq_id),$is_skips,null,$answer_status_1);
}
else
{
// return Redirect::to('user_info/'.Helper::encrypt($user_id));
return $this->index();
}
}
else
{
$mcq_user_answer = MCQUserAnswer::where('user_id',$user_id)->where('mcq_id',$mcq_id)->first();
if(isset($mcq_user_answer))
{
if(!isset($mcq_user_answer->mcq_option_id) && intval(Input::get('is_skip'))==0)
{
$mcq_user_answer->opened_at= $opened_at;
$mcq_user_answer->answered_at= $answered_at;
$mcq_user_answer->mcq_option_id=$mcq_option_id;
$mcq_user_answer->duration = $duration;
$mcq_user_answer->answer = $answer;
$mcq_user_answer->is_skip = null;
$mcq_user_answer->save();
}
// code by ganesan june 30,2022 for update already answered questions
if(isset($mcq_user_answer->mcq_option_id) && !isset($mcq_user_answer->is_skip))
{
$mcq_user_answer->opened_at = $opened_at;
$mcq_user_answer->answered_at= $answered_at;
$mcq_user_answer->updated_at = $answered_at;
$mcq_user_answer->mcq_option_id=$mcq_option_id;
$mcq_user_answer->duration = $duration;
$mcq_user_answer->answer = $answer;
$mcq_user_answer->is_skip = null;
$mcq_user_answer->save();
}
// end
if(intval(Input::get('is_skip'))==1)
{
$mcq_user_answer->is_skip = 1;
$mcq_user_answer->save();
}
}
else
{
$mcq_user_answer = new MCQUserAnswer();
$mcq_user_answer->session_id = $session->session_id;
$mcq_user_answer->course_id = $course_id;
$mcq_user_answer->mcq_id=$mcq_id;
$mcq_user_answer->user_id=$user_id;
$mcq_user_answer->opened_at= $opened_at;
$mcq_user_answer->answered_at= $answered_at;
$mcq_user_answer->duration = $duration;
//Skip button click not save options
if(intval(Input::get('is_skip'))==0)
{
$mcq_user_answer->mcq_option_id=$mcq_option_id;
$mcq_user_answer->answer = $answer;
}
else
{
$mcq_user_answer->is_skip = 1;
}
$mcq_user_answer->save();
}
if(isset($next_mcq_id) && intval($next_mcq_id) >0)
{
Input::replace(['is_refresh' => '0']);
// return $this->MCQRandomGet(Helper::encrypt($course_id),Helper::encrypt($next_mcq_id),$is_skips,$mcq_id);
// if( $answer_status_1 == "skipped")
// {
// // $next_mcq_id = 100;
// $next_mcq_id = DB::statement("SELECT mcq_id FROM mcq_users_answers where user_id= and course_id = 4 and mcq_id > 255 and is_skip = 1 limit 1;");
// }
// else
// {
// // $next_mcq_id = 1001003;
// }
return $this->MCQRandomGet(Helper::encrypt($course_id),Helper::encrypt($next_mcq_id),$is_skips,$mcq_id,$answer_status_1);
}
else
{
$course_completed_count = 0;
$course_skippted_count = 0;
$course_question_count = 0;
$course_count = MCQCourse::getUserCoursesCompletedCount($user_id,$course_id);
if(isset($course_count))
{
$course_completed_count = $course_count->completed_count;
$course_skippted_count = $course_count->skippted_count;
$course_question_count = $course_count->question_count;
}
// var_dump($course_completed_count);
// var_dump($course_skippted_count);
// var_dump($course_question_count);
// exit;
// if(intval($course_completed_count) == intval($course->course_question_limit))
// {
// return $this->userCourses();
// }
// else
// {
if(intval($course_completed_count) != intval($course_question_count))
{
return $this->pending($course_id);
}
elseif(intval($course_skippted_count)>0)
{
return $this->pending($course_id);
}
else
{
return $this->success();
}
// }
}
}
}
else
{
return $this->ClosedPage();
// Session::flash('msg', AppMessage::$EndSession);
// return $this->msg();
};
} catch (Exception $e) {
Log::error('MCQController - MCQRandomPost : '.$e->getMessage());
Session::flash('msg', AppMessage::$GENERAL_ERROR);
return $this->msg($session_id,$session_key);
}
}
public function success()
{
$session = Sessions::getSession();
return View::make('success')->with('session',$session);
}
public function pending($course_id)
{
$session = Sessions::getSession();
return View::make('pending')->with('session',$session)->with('course_id',$course_id);
}
// public function PollSeps($mcq_id=null)
// {
// try
// {
// $session = Sessions::getSession();
// if(isset($session))
// {
// $mcq = null;
// $user_rate = null;
// $pre_order_no = 0;
// $next = intval(Input::get('is_next'));
// if($mcq_id==null)
// {
// $mcq=MCQ::orderBy('order_no')->orderBy('mcq_id')->first();
// $mcq_id= $mcq->mcq_id;
// }
// else
// {
// $pre_image_poll = MCQ::find($mcq_id);
// if(isset($pre_image_poll))
// {
// $pre_order_no = $pre_image_poll->order_no;
// }
// if(isset($pre_order_no) && $pre_order_no > 0)
// {
// if($next >0)
// {
// $mcq=MCQ::orderBy('order_no')->orderBy('mcq_id')->where('order_no','>',$pre_order_no)
// ->first();
// }
// else
// {
// $mcq=MCQ::orderBy('order_no')->orderBy('mcq_id')->where('order_no','<',$pre_order_no)
// ->first();
// }
// }
// else
// {
// if($next >0)
// {
// $mcq=MCQ::orderBy('order_no')->orderBy('mcq_id')
// ->where('mcq_id','>',$mcq_id)->first();
// }
// else
// {
// $mcq=MCQ::orderBy('order_no')->orderBy('mcq_id')
// ->where('mcq_id','<',$mcq_id)->first();
// }
// }
// }
// $img_count = MCQ::where('session_id',$session->session_id)->count();
// // $mcq_options=QuizOptions::where('mcq_id',$mcq->mcq_id)->get();
// if(Auth::check())
// {
// $user_rate = MCQUserRate::where('user_id',Auth::User()->user_id)->where('mcq_id',$mcq_id)
// ->first();
// }
// return View::make('poll')->with('image_poll',$mcq)
// ->with('session',$session)
// ->with('img_count',$img_count)
// ->with('user_rate',$user_rate);
// }
// else
// {
// // return $this->ClosedPage();
// Session::flash('msg', AppMessage::$EndSession);
// return Redirect::to('msg');
// // return $this->msg();
// }
// } catch (Exception $e) {
// Log::error('MCQController - PollSeps : '.$e->getMessage());
// Session::flash('msg', AppMessage::$GENERAL_ERROR);
// return Redirect::to('msg');
// }
// }
public function ClosedPage()
{
return View::make('closed');
}
public function thankyou($session_id,$session_key)
{
if(Session::has('msg'))
{
return View::make('thankyou')->with('session_id',$session_id)->with('session_key',$session_key);
}
else
{
return Redirect::to('/'.$session_id+'/'.$session_key);
}
}
public function msg($session_id,$session_key)
{
if(Session::has('msg'))
{
return View::make('msg')->with('session_id',$session_id)->with('session_key',$session_key);
}
else
{
return Redirect::to('/'.$session_id.'/'.$session_key);
}
}
public function checkCourseOpen($course_id, $course = null)
{
if(intval($course_id)>0)
{
$course = MCQCourse::find($course_id);
}
if(isset($course))
{
}
return false;
}
}
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists