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"; }
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')); }
/** * @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('/'); } }
/** * 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'); }
/** * 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')); }