/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Exams::find(); $dataProvider = new ActiveDataProvider(['query' => $query]); if (!($this->load($params) && $this->validate())) { return $dataProvider; } $query->andFilterWhere(['ExamQuestionId' => $this->ExamQuestionId, 'Question' => $this->Question, 'ExamId' => $this->ExamId]); return $dataProvider; }
public function examupdateget($dash, $id) { if (Exams::find($id)) { $theme = Theme::uses('dashboard')->layout('default'); $view = array('name' => 'Dashboard Assessment Update', 'id' => $id); $theme->breadcrumb()->add([['label' => 'Dashboard', 'url' => Setting::get('system.dashurl')], ['label' => 'Exams', 'url' => Setting::get('system.dashurl') . '/exams'], ['label' => $id, 'url' => Setting::get('system.dashurl') . '/exam/' . $id]]); return $theme->scope('exam.update', $view)->render(); } $theme = Theme::uses('dashboard')->layout('default'); $view = array('name' => 'Dashboard Assessment Update', 'id' => $id); $theme->breadcrumb()->add([['label' => 'Dashboard', 'url' => Setting::get('system.dashurl')], ['label' => 'Exams', 'url' => Setting::get('system.dashurl') . '/exams'], ['label' => $id, 'url' => Setting::get('system.dashurl') . '/exam/' . $id]]); return $theme->scope('exam.create', $view)->render(); }
{{$breadcrumbs}} </div> <!--TODO: Editing Template --> <div class="box span12"> <div class="box-header well"> <h2><i class="icon-info-sign"></i>Create a New Exam</h2> </div> <div class="box-content" style="display: block;"> <div class="container-fluid"> <div class="row-fluid"> <div class="span12"> <?php $examid = $id; $exam = Exams::find($id); echo "<fieldset>"; echo "<div class='container-fluid'><div class='row-fluid'><div class='span6'>"; echo Form::label('id', 'ID', array('class' => 'pull-left', 'style' => 'margin:20px;')); echo Form::text('id', 0, array('class' => 'pull-right disabled uneditable-input', 'style' => 'margin:20px;', 'disabled')); echo Form::label('related_tutorial', 'Related Tutorial', array('class' => 'pull-left', 'style' => 'clear:left;margin:10px')); $tutorialid = Session::get('tutorialid', 1); $tutoriallist = array(); // $tutorial = Tutorials::where('id','=',$tutorialid); // var_dump($tutorial); if ($tutorialid !== NULL) { $tutorial = Tutorials::findOrFail($tutorialid); $tutoriallist[$tutorial->id] = $tutorial->name; $teacher = User::findOrFail($tutorial->createdby); echo Form::select('related_tutorial', $tutoriallist, Session::get('tutorialid'), array('class' => 'pull-right uneditable-input', 'style' => 'clear:right;margin:5px;height:30px;')); }
<?php $examid = Session::get('examid'); $exam = Exams::find($examid); Session::put('halt_tutorial_except', $id); $tohash = 'tutorial-' . $id; $encrypted = Crypt::encrypt($tohash); ?> <!doctype html> <html> <head> <title>{{ Setting::get('system.schoolname') }}</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> @stylesheets('bootstrap') @stylesheets('grans') </head> <body> {{ $header }} <div class='container-fluid'> <div class='row-fluid'> <div class="span12 offset1"> <?php echo Form::open(array('url' => '/tutorial-' . $id . '/exam-' . $examid . '/' . $encrypted . '/', 'method' => 'post', 'class' => 'form-horizontal')); echo "<fieldset>"; echo "<div class='container-fluid'><div class='row-fluid'><div class='span6'>"; echo Form::label('id', 'ID', array('class' => 'pull-left', 'style' => 'margin:20px;')); echo Form::text('id', 0, array('class' => 'pull-right disabled uneditable-input', 'style' => 'margin:20px;', 'disabled')); echo Form::label('related_tutorial', 'Related Tutorial', array('class' => 'pull-left', 'style' => 'clear:left;margin:10px')); $tutorialid = Session::get('tutorialid', 1); $tutoriallist = array(); // $tutorial = Tutorials::where('id','=',$tutorialid);
<?php if ($errors->first()) { echo "<div class='alert alert-error alert-block fade in'>"; echo '<button type="button" class="close" data-dismiss="alert">×</button>'; echo $errors->first(); echo "</div>"; } echo Form::open(array('url' => '/exam/edit/' . $id, 'method' => 'post', 'class' => 'form-horizontal')); echo "<fieldset>"; echo Form::label('id', 'id', array('class' => 'pull-left', 'style' => 'clear:left;padding:15px;')); echo Form::text('id', $id, array('disabled' => '', 'class' => 'disabled pull-right', 'style' => 'margin:10px;')); echo Form::label('title', 'Title', array('class' => 'pull-left', 'style' => 'clear:left;margin:15px;')); echo Form::text("title", $exam->title, array('placeholder' => 'Title of the Tutorial', 'class' => 'pull-right', 'style' => 'clear:right;margin:10px;')); echo Form::label('subject', 'Subject', array('class' => 'pull-left', 'style' => 'clear:left;margin:15px;')); $subject = Subject::find(Exams::find($id)->subjectid); $subjectlist[$subject->id] = $subject->subjectname; echo Form::select('subject', $subjectlist, $subject->id, array('class' => 'pull-right', 'style' => 'clear:right;margin:10px;')); echo '<div class="control-group" style="clear:left;">'; echo "<div id='exams'>"; $hash = $exam->hash; $examdata_encoded = File::get(app_path() . '/files/exam-' . $id . '/' . $hash . '.json'); Session::put('questiondata_key', 1); $examdata = json_decode($examdata_encoded); $examdata = objectToArray($examdata); foreach ($examdata['questiondata']['questions'] as $question) { $qc = Session::get('questiondata_key', 1); $checked1 = ''; $checked2 = ''; $checked3 = ''; $checked4 = '';
Route::get('users', array('before' => 'admin', 'uses' => 'DashboardController@users')); Route::get('teachers', array('before' => 'admin', 'uses' => 'DashboardController@teachers')); Route::get('students', array('before' => 'admin', 'uses' => 'DashboardController@students')); Route::get('exams', array('before' => 'teacher', 'uses' => 'DashboardController@exams')); Route::get('subjects', array('before' => 'admin', 'uses' => 'DashboardController@subjects')); Route::get('tutorials', array('before' => 'teacher', 'uses' => 'DashboardController@tutorials')); Route::get('assessments', array('before' => 'teacher', 'uses' => 'DashboardController@assessments')); Route::get('/', array('as' => 'dashboard', 'before' => 'teacher', 'uses' => 'DashboardController@dash')); Route::get('tutorial/edit/{id?}', 'TutorialsController@index')->where('id', '[0-9]+')->before('teacher'); Route::get('tutorial/{mode}/{id}', array('before' => 'teacher', 'uses' => 'TutorialsController@modder')); Route::get('tutorial/update/{id}/{attachmentname}/{mode}', array('before' => 'teacher', 'uses' => 'TutorialsController@attachmentHandler')); Route::get('assessment/{id}', array('before' => 'teacher', 'uses' => 'HttpController@assessmentupdateget')); Route::get('/assessment-{aid}/exam-{eid}/markup', array('before' => 'teacher', 'uses' => 'ExamController@markExam')); Route::get('/exam/edit/{id}', array('before' => 'teacher', 'uses' => 'HttpController@examupdateget')); Route::get('/exam/view/{id}', array('before' => 'teacher', function ($dash, $id) { if (Exams::find($id)) { return View::make('dashboard.exams.view')->with('id', $id); } return View::make('dashboard.exams.create')->with('id', 0); })); Route::get('/exam/delete/{id}', array('before' => 'admin', function ($dash, $id) { $exam = Exams::findOrFail($id); $examdata = DB::select(DB::raw('SELECT exams FROM tutorials')); $examdata = objectToArray($examdata); $pass = []; foreach ($examdata as $exam) { if ($exam["exams"] != NULL) { $exam = unserialize($exam["exams"]); if ((int) $exam["id"] !== (int) $id) { $pass[] = true; } elseif ((int) $exam["id"] == (int) $id) {
public function updateExam($dash, $id) { $rules = array(); $rules['questioncount'] = 'required|integer|min:5|max:100'; $rules['title'] = 'required|min:6|max:1024'; $messages = array(); $questioncount = Input::get('questioncount'); var_dump($questioncount); for ($qc = 1; $qc <= $questioncount; $qc++) { if (Input::get('questionpass' . $qc) == $qc) { $qc++; continue; } else { if (Input::get('question_' . $qc) != NULL) { $rules['question_' . $qc] = 'min:4|max:1024'; $rules['checkbox_' . $qc] = 'required'; $rules['checkbox_' . $qc . '_1'] = 'required|min:1|max:1024'; $rules['checkbox_' . $qc . '_2'] = 'required|min:1|max:1024'; $rules['checkbox_' . $qc . '_3'] = 'required|min:1|max:1024'; $rules['checkbox_' . $qc . '_4'] = 'required|min:1|max:1024'; } } } for ($qc = 1; $qc <= $questioncount; $qc++) { if (Input::get('questionpass' . $qc) == $qc) { $qc++; continue; } else { if (Input::get('question_') . $qc != NULL) { $messages['question_' . $qc . '.required'] = 'Question ' . $qc . " is required"; $messages['checkbox_' . $qc . '_1' . '.required'] = 'The value for ' . $qc . ' Checkbox 1 is missing.'; $messages['checkbox_' . $qc . '_2' . '.required'] = 'The value for ' . $qc . ' Checkbox 2 is missing.'; $messages['checkbox_' . $qc . '_3' . '.required'] = 'The value for ' . $qc . ' Checkbox 3 is missing.'; $messages['checkbox_' . $qc . '_4' . '.required'] = 'The value for ' . $qc . ' Checkbox 4 is missing.'; } } } $validator = Validator::make(Input::all(), $rules, $messages); if ($validator->fails()) { Input::flash(); // return Redirect::to('/exam/edit/0')->withErrors($validator)->withInput(); return View::make('dashboard.exams.create')->with('errors', $validator->getMessageBag())->with('id', 0); } $input = Input::all(); $exam = Exams::find($id); $exam->title = Input::get('title'); $exam->subjectid = Input::get('subject'); $exam->createdby = Sentry::getUser()->id; $data = array(); $data = array(); $data['maxtime'] = Input::get('timing', '30'); $qrealcount = 0; for ($question = 1; $question <= $questioncount;) { // $data['questiondata']['question'][$question]['answers'] = 'answers'; // echo $input['question_'.$question].'<br>'; // var_dump($input['checkbox_'.$question]); // echo "'<br>';"; if (isset($input['question_' . $question])) { $qrealcount++; $data['questiondata']['questions'][$question] = $input['question_' . $question]; for ($checkbox = 1; $checkbox <= 4; $checkbox++) { $data['questiondata']['question'][$question]['checkboxdata'][$checkbox] = $input['checkbox_' . $question . '_' . $checkbox]; // echo $input['checkbox_'.$question.'_'.$checkbox].'<br>'; } // var_dump($input['checkbox_'.$question]); if (is_array($input['checkbox_' . $question])) { if (isset($input['checkbox_' . $question][0]) && $input['checkbox_' . $question][0] > 0 && $input['checkbox_' . $question][0] <= 4) { $data['questiondata']['question'][$question]['answers'][0] = $input['checkbox_' . $question][0]; } if (isset($input['checkbox_' . $question][1])) { $data['questiondata']['question'][$question]['answers'][1] = $input['checkbox_' . $question][1]; } if (isset($input['checkbox_' . $question][2])) { $data['questiondata']['question'][$question]['answers'][2] = $input['checkbox_' . $question][2]; } if (isset($input['checkbox_' . $question][3])) { $data['questiondata']['question'][$question]['answers'][3] = $input['checkbox_' . $question][3]; } if (isset($input['checkbox_' . $question][4])) { $data['questiondata']['question'][$question]['answers'][4] = $input['checkbox_' . $question][4]; } } else { $data['questiondata']['question'][$question]['answers'] = $input['checkbox_' . $question][0]; } $question++; } else { if (Input::get('questionpass' . $question) == $question) { // $question++; } $question++; } } // var_dump($data); $encoded = json_encode($data); echo $encoded; $encryptedpath = Crypt::encrypt('questiondata'); $encryptedpath = substr($encryptedpath, strlen($encryptedpath) / 2); file_put_contents(app_path() . '/files/exam-' . $exam->id . '/' . $encryptedpath . '.json', $encoded); $exam->hash = $encryptedpath; $exam->totalquestions = $qrealcount; $exam->save(); // var_dump($data) return Redirect::to(URL::previous()); }
</tbody> </table> <a id="showquestions" class="btn btn-success ">Show Questions</a> <a class="hidequestions btn btn-warning">Hide Questions</a> </div> <div class="clearfix"></div> <div id="examslock" style="height:40px;"> </div> <h3 id="examsheader">Questions</h3> <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12"> <?php $examdata = unserialize($tutorial->exams); $exam = Exams::find($examdata['id']); $hash = $exam->hash; $examdata_encoded = File::get(app_path() . '/files/exam-' . $exam->id . '/' . $hash . '.json'); Session::put('questiondata_key', 1); $examdata = json_decode($examdata_encoded); $examdata = objectToArray($examdata); echo "\n<div id='exams' style='clear:both;'>"; $qcc = 0; foreach ($examdata['questiondata']['questions'] as $qc => $question) { if (isset($examdata['questiondata']['questions'][$qc])) { $qcc++; } if (isset($examdata['questiondata']['questions'][$qc])) { $checked1 = ''; $checked2 = ''; $checked3 = '';