From 046f73a745b56d9feebd487823e3867c156fce58 Mon Sep 17 00:00:00 2001 From: Friedrich Beckmann Date: Sat, 31 Jan 2026 07:58:41 +0100 Subject: add sort option in admin listview --- admin-show.php | 69 ++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 58 insertions(+), 11 deletions(-) diff --git a/admin-show.php b/admin-show.php index 7f6c99b..21be02b 100644 --- a/admin-show.php +++ b/admin-show.php @@ -63,8 +63,8 @@ echo ""; echo ""; echo ""; echo ""; -echo ""; -echo ""; +echo ""; +echo ""; echo ""; echo ""; echo ""; @@ -112,16 +112,13 @@ echo ""; //echo ""; //echo "
SemesterPrüfungGruppeNachnameGruppe Nachname VornameLaborKlausur
"; +$displaytable = []; foreach ($groups as $semester => $pruefungen) { if ($selectedsemester === "alle" or $selectedsemester === $semester) { foreach ($pruefungen as $pruefung => $groupsperpruefung) { if ($selectedpruefung === "alle" or $selectedpruefung === $pruefung) { foreach ($groupsperpruefung as $groupname => $teilnehmerarray) { foreach ($teilnehmerarray as $matrikelnummer) { - echo ""; - echo ""; - echo ""; - echo ""; $student = $students[$matrikelnummer]; $nachname = $student["nachname"]; $vorname = $student["vorname"]; @@ -135,17 +132,67 @@ foreach ($groups as $semester => $pruefungen) { } else { $labornote = ""; } - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; + $displayrow = array ( + "semester" => $semester, + "fach" => $pruefung, + "gruppe" => $groupname, + "nachname" => "$nachname", + "vorname" => $vorname, + "labornote" => "", + "klausurnote" => "" + ); + $displaytable[] = $displayrow; } } } } } } + +function get_sortkey() { + foreach (["snup", "sndn", "grup", "grdn"] as $key) { + if (isset($_POST[$key])) { + return $key; + } + } + if (isset($_POST["sortkey"])) { + return $_POST["sortkey"]; + } +} + +$sk = get_sortkey(); + +if ($sk === "snup" or $sk === "sndn") { + function cmp($a,$b) { + global $sk; + preg_match('/(.*)<\/a>/',$a["nachname"],$matches); + $asn=$matches[1]; + preg_match('/(.*)<\/a>/',$b["nachname"],$matches); + $bsn=$matches[1]; + return ($sk === "snup") ? strcmp($asn,$bsn) : strcmp($bsn,$asn); + } + echo ""; + usort($displaytable, 'cmp'); +} + +if ($sk === "grup" or $sk === "grdn") { + function cmp($a,$b) { + global $sk; + $agr = $a["gruppe"]; + $bgr = $b["gruppe"]; + return ($sk === "grup") ? strcmp($agr,$bgr) : strcmp($bgr,$agr); + } + echo ""; + usort($displaytable, 'cmp'); +} + +foreach ($displaytable as $row) { + echo ""; + foreach ($row as $element) { + echo ""; + } + echo ""; +} echo "
$semester $pruefung $groupname $nachname $vorname
$element
"; echo ""; echo ""; -- cgit v1.2.3