This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. */ include "setup.php"; my_session_start(); $login=false; if (isset($_SESSION["login"])) { $login = $_SESSION["login"]; } if ($login !== "admin") { header("Location: index.php"); exit; } ?>
Add students Show students Logout

Add Users

Die Teilnehmer werden aus dem Moodlekurs der Veranstaltung übernommen. Dazu die Teilnehmer als csv exportieren. Die csv Datei dann mit den Angaben zum Kurs und zum Semester hier hochladen. Die csv Datei enthält die Namen, Matrikelnummer und die Gruppen.

$teilnehmerliste) { if (in_array($matrikelnummer, $teilnehmerliste)) { return $gname; } } } function parseuserfile($fname) { global $pfach,$psemester,$newstudents,$newgroups,$students,$groups; if (($fh = fopen($fname, "r")) !== FALSE) { while (($line = fgetcsv($fh, 1000, ",", "\"", ""))) { $vorname = $line[0]; $nachname = $line[1]; $matrikelnummer = is_numeric($line[2]) ? $line[2] : ""; $student = array ( "vorname" => $vorname, "nachname" => $nachname, "noten" => array ( $pfach => [] ) ); $newgruppe = ""; if (!empty($line[4])) { $gruppen = str_getcsv($line[4],",","\"",""); foreach ($gruppen as $gruppe) { if (preg_match("/.*-G[0-9].*/u", $gruppe) or preg_match("/G[0-9].*/u", $gruppe) ) { $newgruppe = trim($gruppe); } } } if (empty($newgruppe) or empty($matrikelnummer)) { echo "

WARNING: $vorname $nachname has no group or no matrikelnummer.

"; } elseif (!empty($groups[$psemester][$pfach]) and $gname = is_student_in_any_group($matrikelnummer, $groups[$psemester][$pfach])) { echo "

WARNING: $matrikelnummer is already in $gname in database.

"; } elseif ($gname = is_student_in_any_group($matrikelnummer, $newgroups)) { echo "

WARNING: $matrikelnummer is already in $gname in this file

"; } else { if (empty($students[$matrikelnummer])) { //db_student_new($matrikelnummer,$student); echo "

Adding student $matrikelnummer

"; $newstudents[$matrikelnummer] = $student; } elseif (!array_key_exists($pfach,$students[$matrikelnummer]["noten"])) { echo "

Adding $pfach to student $matrikelnummer

"; $newstudents[$matrikelnummer] = $student; } else { echo "

WARNING: student $matrikelnummer is already in database.

"; } if (empty($groups[$psemester][$pfach][$newgruppe])) { if (empty($newgroups[$newgruppe])) { $newgroups[$newgruppe] = [$matrikelnummer]; } elseif (!in_array($matrikelnummer,$newgroups[$newgruppe])) { $newgroups[$newgruppe][] = $matrikelnummer; } else { echo "

WARNING: student $matrikelnummer is already in group $newgruppe

"; } } elseif (!in_array($matrikelnummer,$groups[$psemester][$pfach][$newgruppe])) { echo "

ERROR: TODO group $newgruppe without $matrikelnummer already in database but

"; } else { echo "

WARNING: group $newgruppe with $matrikelnummer already in database

"; } } //echo "

",$vorname,$nachname,$matrikelnummer,$newgruppe,"

"; } ksort($newgroups); $_SESSION["newstudents"] = $newstudents; $_SESSION["newgroups"] = $newgroups; $_SESSION["fach"] = $pfach; $_SESSION["semester"] = $psemester; } else { echo "

Error: Could not open file

"; return FALSE; } return; } echo "
"; echo ""; echo ""; echo ""; echo ""; echo ""; if (!empty($_POST["save"]) and $_POST["save"] === "save") { foreach ($newstudents as $matrikelnummer => $student) { if (empty($students[$matrikelnummer])) { db_student_new($matrikelnummer,$student); } elseif (empty($students[$matrikelnummer]["noten"][$pfach])) { db_student_add_fach($matrikelnummer,$pfach); } else { echo "

ERROR: $matrikelnummer with $pfach already in database.

"; } } foreach ($newgroups as $gname => $teilnehmerarray) { db_group_new($psemester,$pfach,$gname,$teilnehmerarray); } $newstudents = []; $newgroups = []; echo "

Saved.

"; } elseif (!empty($_POST["cancel"]) and $_POST["cancel"] === "cancel") { $newstudents = []; $newgroups = []; echo "

Canceled.

"; } elseif (!empty($_POST["upload"]) and $_POST["upload"] === "upload") { $fname = $_FILES["csvfile"]["tmp_name"]; $ftype = $_FILES["csvfile"]["type"]; if (!empty($fname)) { if ($ftype !== "text/csv") { echo "

ERROR: Filetype must be csv

"; } else { parseuserfile($fname); } } } if (!empty($newstudents) or !empty($newgroups)) { echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; foreach ($newgroups as $gname => $teilnehmera) { foreach ($teilnehmera as $matrikelnummer) { if (!empty($newstudents[$matrikelnummer])) { $vorname = $newstudents[$matrikelnummer]["vorname"]; $nachname = $newstudents[$matrikelnummer]["nachname"]; } else { $vorname = $students[$matrikelnummer]["vorname"]; $nachname = $students[$matrikelnummer]["nachname"]; } echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; } } echo "
SemesterPrüfungGruppeNachnameVorname
",$psemester,"",$pfach,"",$gname,"",$nachname,"",$vorname,"
"; echo ""; echo ""; } echo "
"; ?>