Exemplo n.º 1
0
 public function order(Request $request)
 {
     if (!Auth::check()) {
         return redirect('/auth/login');
     }
     $order = explode(",", $_POST['order']);
     $experiment = Experiment::find($_POST['experiment']);
     $experiment->element_id = $order[0];
     $experiment->save();
     for ($i = 0; $i < count($order) - 1; $i++) {
         $element = Element::find($order[$i]);
         $element->element_id = $order[$i + 1];
         $element->save();
     }
     return "ok";
 }
Exemplo n.º 2
0
 public function show($id)
 {
     $experiment = Experiment::findOrFail($id);
     $elements = array();
     $element = Element::find($experiment->element_id);
     $xor2 = array();
     $xorElement = null;
     $antworten = array();
     while ($element != null) {
         if ($element->type == 5) {
             $xorElement = $element;
             $xor = json_decode($element->ref, true);
             $xor2 = array();
             if (is_array($xor)) {
                 foreach ($xor as $pkey => $pfad) {
                     foreach ($pfad as $ekey => $el) {
                         $ele = Element::find($el);
                         if ($ele->type == 2 or $ele->type == 3 or $ele->type == 4) {
                             $xor2[$pkey][$ekey] = $ele;
                             $antwortenObjects = Answer::where("element", $ele->id)->where("experiment", $id)->get();
                             foreach ($antwortenObjects as $antwortObject) {
                                 $antworten[$antwortObject->student][$ele->id] = $antwortObject;
                             }
                         }
                     }
                 }
             }
         } elseif ($element->type == 2 or $element->type == 4 or $element->type == 3) {
             $elements[] = Element::findOrFail($element->id);
             $antwortenObjects = Answer::where("element", $element->id)->where("experiment", $id)->get();
             foreach ($antwortenObjects as $antwortObject) {
                 $antworten[$antwortObject->student][$element->id] = $antwortObject;
             }
         }
         $element = $element->next();
     }
     $elements = array_merge($elements, [$xor2]);
     $fields = array();
     $fields2 = Field::all();
     foreach ($fields2 as $field) {
         $fields[$field->id] = $field;
     }
     return view('auswertung.show', compact('experiment', 'elements', 'antworten', 'xorElement', 'fields'));
 }
Exemplo n.º 3
0
 /**
  * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
  */
 public function redirect()
 {
     $array = explode("-", $_POST['key']);
     if (count($array) == 2 and $array[0] != '' and $array[1] != '') {
         $mt = explode(' ', microtime());
         if (session("user") == "") {
             session(["user" => $mt[1] * 1000 + round($mt[0] * 1000)]);
         }
         $experiment = Experiment::where("key", $array[0])->first();
         if ($experiment == null) {
             return redirect('/');
         }
         $elements = array();
         $element = Element::find($experiment->element_id);
         while ($element != null) {
             if ($element->type == Element::XORGATE) {
                 $hash = $array[1][0] . substr(md5(date("s", strtotime($element->created_at)) . $array[1][0]), -2);
                 if (trim($hash) != trim($array[1])) {
                     return redirect('/');
                 }
                 $xor = json_decode($element->ref, true);
                 $elements = array_merge($elements, $xor[$array[1][0]]);
             } else {
                 $elements[] = $element->id;
             }
             $element = $element->next();
         }
         session(['experiment' => $array[0], 'elements' => $elements]);
         $antwort = new Answer();
         $antwort->element = 0;
         $antwort->experiment = $experiment->id;
         $antwort->value = $array[1][0];
         $antwort->student = session("user");
         $antwort->save();
         return redirect('/experiment/' . $array[0] . '/0');
     } else {
         return redirect('/');
     }
 }
Exemplo n.º 4
0
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function destroy($id)
 {
     $element = Element::find($id);
     $element->delete();
     return \Redirect::route('element.index');
 }
Exemplo n.º 5
0
 /**
  * Display the specified resource.
  *
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function show($id)
 {
     $experiment = Experiment::where("key", $id)->first();
     if ($experiment == null) {
         return redirect('/');
     }
     $element = $experiment->element()->first();
     $allow[] = $experiment->element_id;
     $e = $experiment->element;
     while (Element::find($e->element_id) != null) {
         $allow[] = $e->element_id;
         if ($e->type == 5) {
             $fieldnr = session("field");
             $field_id = substr($fieldnr, 0, -2);
             $field_type = substr($fieldnr, -2);
             $field = Field::where('id', $field_id)->where('type', $field_type)->first();
             if ($field == null) {
                 return redirect('/');
             }
         }
         $e = Element::find($e->element_id);
     }
     session(['fields' => $allow]);
     return view('experiment.show', compact('experiment', 'element'));
 }