From 1623c8e51c43199a38d413c9d3f76eadc0e21755 Mon Sep 17 00:00:00 2001 From: Alexei Karpenko Date: Wed, 22 Oct 2025 16:57:19 +0200 Subject: [PATCH 1/6] Ausbildungsvertrag: akadgrad is coming from Studienordnung --- rdf/ausbildungsvertrag.xml.php | 42 ++++++++++++++++++++++------------ 1 file changed, 27 insertions(+), 15 deletions(-) diff --git a/rdf/ausbildungsvertrag.xml.php b/rdf/ausbildungsvertrag.xml.php index 56dfd95a4..3be40e0e2 100644 --- a/rdf/ausbildungsvertrag.xml.php +++ b/rdf/ausbildungsvertrag.xml.php @@ -332,6 +332,13 @@ foreach($prestudent_arr as $prest_id) { $studiengangbezeichnung = $studienordnung->__get('studiengangbezeichnung'); $studiengangbezeichnung_englisch = $studienordnung->__get('studiengangbezeichnung_englisch'); + $akadgrad = new akadgrad(); + if ($akadgrad->load($studienordnung->__get('akadgrad_id'))) + { + // TODO - geschlechterneutral? m/w/d + $akadgrad_titel = $akadgrad->titel; + $akadgrad_kurzbz = $akadgrad->akadgrad_kurzbz; + } } } $studiengang_bezeichnung = empty($studiengangbezeichnung) ? $studiengang->bezeichnung : $studiengangbezeichnung; @@ -428,25 +435,30 @@ foreach($prestudent_arr as $prest_id) //Wenn Quereinsteiger stimmt studiengang_maxsemester nicht mit der tatsaechlichen Ausbildungsdauer ueberein $student_maxsemester = ($studiengang->max_semester-$ausbildungssemester)+1; + + // TODO: where to get semester duration for master Legrgaenge? + //if ($lehrgangstyp->lgartcode == 1) $student_maxsemester += 2; echo "\t\t".$student_maxsemester."\n"; echo "\t\t".($student_maxsemester/2)."\n"; - - //Bis die Akadgrad-Tabelle an die Studienordnung angepasst ist, wird der Akadgrad hier ermittelt - - $akadgrad_titel = ''; - $akadgrad_kurzbz = ''; - - $qry = "SELECT * FROM lehre.tbl_akadgrad - WHERE studiengang_kz=".$db->db_add_param($studiengang->studiengang_kz, FHC_INTEGER)." - AND (geschlecht=".$db->db_add_param($person->geschlecht, FHC_STRING)." OR geschlecht IS NULL) - LIMIT 1"; - - if($db->db_query($qry)) + if (!isset($akadgrad_titel) || $akadgrad_titel == '') { - if($row = $db->db_fetch_object()) + //Bis die Akadgrad-Tabelle an die Studienordnung angepasst ist, wird der Akadgrad hier ermittelt + + $akadgrad_titel = ''; + $akadgrad_kurzbz = ''; + + $qry = "SELECT * FROM lehre.tbl_akadgrad + WHERE studiengang_kz=".$db->db_add_param($studiengang->studiengang_kz, FHC_INTEGER)." + AND (geschlecht=".$db->db_add_param($person->geschlecht, FHC_STRING)." OR geschlecht IS NULL) + LIMIT 1"; + + if($db->db_query($qry)) { - $akadgrad_titel = $row->titel; - $akadgrad_kurzbz = $row->akadgrad_kurzbz; + if($row = $db->db_fetch_object()) + { + $akadgrad_titel = $row->titel; + $akadgrad_kurzbz = $row->akadgrad_kurzbz; + } } } From 2b53eb327fdd99db3b45d543100dc4dca9786103 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Fri, 24 Oct 2025 13:10:41 +0200 Subject: [PATCH 2/6] =?UTF-8?q?LVRegeln=20-=20Abschlussregel=20bei=20Anmel?= =?UTF-8?q?dung=20entfernt=20da=20diese=20dort=20zu=20Problemen=20f=C3=BCh?= =?UTF-8?q?rt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/profile/studienplan.php | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/cis/private/profile/studienplan.php b/cis/private/profile/studienplan.php index 8545b2e34..a853cbcfe 100644 --- a/cis/private/profile/studienplan.php +++ b/cis/private/profile/studienplan.php @@ -107,16 +107,10 @@ if(isset($_GET['getAnmeldung'])) $abgeschlossen = false; $semesterlock = false; $regelerfuellt = true; + if ($kompatible_lv) { $lvregelExists = $lvregel->exists($kompatible_lv); - if($lvregelExists) - { - if($lvregel->isAbgeschlossen($uid, $kompatible_lv)) - $abgeschlossen=true; - else - $abgeschlossen=false; - } if(!$lvregel->checkSemester($kompatible_lv, $semester)) { @@ -135,7 +129,7 @@ if(isset($_GET['getAnmeldung'])) } } - if (!(($lvregelExists && !$abgeschlossen) || $semesterlock || !$regelerfuellt)) + if (!$semesterlock || $regelerfuellt) { $anzahl++; // LV wird angeboten und Anmeldefenster ist offen @@ -152,7 +146,6 @@ if(isset($_GET['getAnmeldung'])) echo '
'.$lv->bezeichnung.''; } } - } /* else { From 3e52ea39d53f3403c41d0cbc17b54c970a4904bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Fri, 24 Oct 2025 13:36:11 +0200 Subject: [PATCH 3/6] LVRegel Fixed Semester Check --- cis/private/profile/studienplan.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cis/private/profile/studienplan.php b/cis/private/profile/studienplan.php index a853cbcfe..74102fd09 100644 --- a/cis/private/profile/studienplan.php +++ b/cis/private/profile/studienplan.php @@ -129,7 +129,7 @@ if(isset($_GET['getAnmeldung'])) } } - if (!$semesterlock || $regelerfuellt) + if (!$semesterlock && $regelerfuellt) { $anzahl++; // LV wird angeboten und Anmeldefenster ist offen From 565640c73be7eeecc0190a43ebcbc47bf2436d13 Mon Sep 17 00:00:00 2001 From: Alexei Karpenko Date: Sun, 26 Oct 2025 17:36:22 +0100 Subject: [PATCH 4/6] Ausbildungsvertrag: akad grad from Studienordnung is own field --- rdf/ausbildungsvertrag.xml.php | 42 ++++++++++++++++------------------ 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/rdf/ausbildungsvertrag.xml.php b/rdf/ausbildungsvertrag.xml.php index 3be40e0e2..69c34d7f3 100644 --- a/rdf/ausbildungsvertrag.xml.php +++ b/rdf/ausbildungsvertrag.xml.php @@ -335,9 +335,8 @@ foreach($prestudent_arr as $prest_id) $akadgrad = new akadgrad(); if ($akadgrad->load($studienordnung->__get('akadgrad_id'))) { - // TODO - geschlechterneutral? m/w/d - $akadgrad_titel = $akadgrad->titel; - $akadgrad_kurzbz = $akadgrad->akadgrad_kurzbz; + $akadgrad_titel_studienordnung = $akadgrad->titel; + $akadgrad_kurzbz_studienordnung = $akadgrad->akadgrad_kurzbz; } } } @@ -436,34 +435,33 @@ foreach($prestudent_arr as $prest_id) //Wenn Quereinsteiger stimmt studiengang_maxsemester nicht mit der tatsaechlichen Ausbildungsdauer ueberein $student_maxsemester = ($studiengang->max_semester-$ausbildungssemester)+1; - // TODO: where to get semester duration for master Legrgaenge? - //if ($lehrgangstyp->lgartcode == 1) $student_maxsemester += 2; + // TODO: where to get semester duration for master Lehrgaenge? echo "\t\t".$student_maxsemester."\n"; echo "\t\t".($student_maxsemester/2)."\n"; - if (!isset($akadgrad_titel) || $akadgrad_titel == '') + + //Bis die Akadgrad-Tabelle an die Studienordnung angepasst ist, wird der Akadgrad hier ermittelt + + $akadgrad_titel = ''; + $akadgrad_kurzbz = ''; + + $qry = "SELECT * FROM lehre.tbl_akadgrad + WHERE studiengang_kz=".$db->db_add_param($studiengang->studiengang_kz, FHC_INTEGER)." + AND (geschlecht=".$db->db_add_param($person->geschlecht, FHC_STRING)." OR geschlecht IS NULL) + LIMIT 1"; + + if($db->db_query($qry)) { - //Bis die Akadgrad-Tabelle an die Studienordnung angepasst ist, wird der Akadgrad hier ermittelt - - $akadgrad_titel = ''; - $akadgrad_kurzbz = ''; - - $qry = "SELECT * FROM lehre.tbl_akadgrad - WHERE studiengang_kz=".$db->db_add_param($studiengang->studiengang_kz, FHC_INTEGER)." - AND (geschlecht=".$db->db_add_param($person->geschlecht, FHC_STRING)." OR geschlecht IS NULL) - LIMIT 1"; - - if($db->db_query($qry)) + if($row = $db->db_fetch_object()) { - if($row = $db->db_fetch_object()) - { - $akadgrad_titel = $row->titel; - $akadgrad_kurzbz = $row->akadgrad_kurzbz; - } + $akadgrad_titel = $row->titel; + $akadgrad_kurzbz = $row->akadgrad_kurzbz; } } echo "\t\t".$akadgrad_titel."\n"; echo "\t\t".$akadgrad_kurzbz."\n"; + echo "\t\t".($akadgrad_titel_studienordnung ?? '')."\n"; + echo "\t\t".($akadgrad_kurzbz_studienordnung ?? '')."\n"; echo "\t\t".$datum_aktuell."\n"; From 3c910d03bbc0aa8e2e35b21c0c4509b6faa4225d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Thu, 30 Oct 2025 15:33:12 +0100 Subject: [PATCH 5/6] Fixed Problem with Special Characters in Permission Description --- .../benutzerberechtigung_uebersicht.php | 456 +++++++++--------- 1 file changed, 228 insertions(+), 228 deletions(-) diff --git a/vilesci/stammdaten/benutzerberechtigung_uebersicht.php b/vilesci/stammdaten/benutzerberechtigung_uebersicht.php index 381d3eaa8..513cbd5e1 100644 --- a/vilesci/stammdaten/benutzerberechtigung_uebersicht.php +++ b/vilesci/stammdaten/benutzerberechtigung_uebersicht.php @@ -62,29 +62,29 @@ $(document).ready(function() $("#t1").tablesorter( { - sortList: [[4,0],[0,0],[1,0],[2,0]], - widgets: ["zebra", "filter", "stickyHeaders"] - //headers: {4:{sorter:false}} + sortList: [[4,0],[0,0],[1,0],[2,0]], + widgets: ["zebra", "filter", "stickyHeaders"] + //headers: {4:{sorter:false}} }); $("#t2").tablesorter( { - sortList: [[0,0],[1,0],[2,0],[3,0]], + sortList: [[0,0],[1,0],[2,0],[3,0]], widgets: ["zebra", "filter", "stickyHeaders"], headers: {8:{sorter:false}}, - emptyTo: "emptyMax", - widgetOptions : { filter_functions: - { - // Add select menu to this column - 7 : { + emptyTo: "emptyMax", + widgetOptions : { filter_functions: + { + // Add select menu to this column + 7 : { "Ja" : function(e, n, f, i, $r, c, data) { return e === "Ja" || /^\s*$/.test(e); }, - "Nein" : function(e, n, f, i, $r, c, data) { return e === "Nein" || /^\s*$/.test(e); } - }, - 8 : { - "Aktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonGreen" ); }, - "Inaktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonRed" ) || $r.find("div").hasClass( "buttonYellow" ); } - } - } - } + "Nein" : function(e, n, f, i, $r, c, data) { return e === "Nein" || /^\s*$/.test(e); } + }, + 8 : { + "Aktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonGreen" ); }, + "Inaktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonRed" ) || $r.find("div").hasClass( "buttonYellow" ); } + } + } + } }); $("#t3").tablesorter( { @@ -92,55 +92,55 @@ $(document).ready(function() widgets: ["zebra", "filter", "stickyHeaders"], headers: {8:{sorter:false}}, emptyTo: "emptyMax", - widgetOptions : { filter_functions: - { - // Add select menu to this column - 6 : { + widgetOptions : { filter_functions: + { + // Add select menu to this column + 6 : { "Ja" : function(e, n, f, i, $r, c, data) { return e === "Ja" || /^\s*$/.test(e); }, - "Nein" : function(e, n, f, i, $r, c, data) { return e === "Nein" || /^\s*$/.test(e); } - }, - 7 : { - "Aktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonGreen" ); }, - "Inaktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonRed" ) || $r.find("div").hasClass( "buttonYellow" ); } - } - } - } + "Nein" : function(e, n, f, i, $r, c, data) { return e === "Nein" || /^\s*$/.test(e); } + }, + 7 : { + "Aktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonGreen" ); }, + "Inaktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonRed" ) || $r.find("div").hasClass( "buttonYellow" ); } + } + } + } }); $("#t4").tablesorter( { - sortList: [[0,0],[1,0],[2,0]], + sortList: [[0,0],[1,0],[2,0]], widgets: ["zebra", "filter", "stickyHeaders"], headers: {9:{sorter:false}}, - emptyTo: "emptyMax", - widgetOptions : { filter_functions: - { - // Add select menu to this column - 7 : { - "Ja" : function(e, n, f, i, $r, c, data) { return /Ja/.test(e); }, - "Nein" : function(e, n, f, i, $r, c, data) { return /Nein/.test(e); } - }, - 8 : { - "Aktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonGreen" ); }, - "Inaktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonRed" ) || $r.find("div").hasClass( "buttonYellow" ); } - } - } - } + emptyTo: "emptyMax", + widgetOptions : { filter_functions: + { + // Add select menu to this column + 7 : { + "Ja" : function(e, n, f, i, $r, c, data) { return /Ja/.test(e); }, + "Nein" : function(e, n, f, i, $r, c, data) { return /Nein/.test(e); } + }, + 8 : { + "Aktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonGreen" ); }, + "Inaktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonRed" ) || $r.find("div").hasClass( "buttonYellow" ); } + } + } + } }); $("#t5").tablesorter( { - sortList: [[0,0],[1,0],[3,1]], + sortList: [[0,0],[1,0],[3,1]], widgets: ["zebra", "filter", "stickyHeaders"], headers: {4:{sorter:false}}, - emptyTo: "emptyMax", - widgetOptions : { filter_functions: - { - // Add select menu to this column - 4 : { - "Ja" : function(e, n, f, i, $r, c, data) { return /Ja/.test(e); }, - "Nein" : function(e, n, f, i, $r, c, data) { return /Nein/.test(e); } + emptyTo: "emptyMax", + widgetOptions : { filter_functions: + { + // Add select menu to this column + 4 : { + "Ja" : function(e, n, f, i, $r, c, data) { return /Ja/.test(e); }, + "Nein" : function(e, n, f, i, $r, c, data) { return /Nein/.test(e); } } - } - } + } + } }); // Breite des Autocompletes korrigieren um das Springen zu verhindern $.extend($.ui.autocomplete.prototype.options, { @@ -190,58 +190,58 @@ $(document).ready(function() }); - + @@ -312,7 +312,7 @@ $htmlstr=' $selected = 'selected="selected"'; else $selected = ''; - $htmlstr .= ''; + $htmlstr .= ''; } $htmlstr .= ' Nur User @@ -422,13 +422,13 @@ if(isset($_GET['searchstr'])) if($berechtigung_kurzbz != '') { $berechtigungen = new benutzerberechtigung(); - - // Wenn $userOnly false ist, werden die Rollen und Funktionen ausgegeben, die das Recht beinhalten, - // ansonsten werden die Rollen und Funktionen auf User aufgelöst und nur User ausgegeben - if ($userOnly == false) - { + + // Wenn $userOnly false ist, werden die Rollen und Funktionen ausgegeben, die das Recht beinhalten, + // ansonsten werden die Rollen und Funktionen auf User aufgelöst und nur User ausgegeben + if ($userOnly == false) + { $berechtigungen->getBenutzerFromBerechtigung($berechtigung_kurzbz); - + if(isset($berechtigungen->result) && count($berechtigungen->result) != 0) { $htmlstr .= "

".$berechtigung_kurzbz."

\n"; @@ -444,16 +444,16 @@ if($berechtigung_kurzbz != '') Status Aktion"; $htmlstr .= "\n"; - + foreach($berechtigungen->result as $row) { $benutzer = new benutzer(); $benutzer->load($row->uid); $organisationseinheit = new organisationseinheit($row->oe_kurzbz); - + $heute = strtotime(date('Y-m-d')); - + if ($row->ende!='' && strtotime($row->ende) < $heute) { $status = '
'; @@ -466,7 +466,7 @@ if($berechtigung_kurzbz != '') { $status = '
'; } - + $htmlstr .= ' '; $htmlstr .= ' '.($row->rolle_kurzbz != ''?$row->rolle_kurzbz:'').''; $htmlstr .= ' '.($row->funktion_kurzbz != ''?$row->funktion_kurzbz:'').''; @@ -483,7 +483,7 @@ if($berechtigung_kurzbz != '') $htmlstr .= ' Funktionsrechte bearbeiten'; elseif ($row->rolle_kurzbz != '') $htmlstr .= ' Rollenrechte bearbeiten'; - + $htmlstr .= ' '; } $htmlstr .= ''; @@ -493,63 +493,63 @@ if($berechtigung_kurzbz != '') $htmlstr .= "Für diese Berechtigung sind keine Einträge vorhanden"; } } - else - { - $berechtigungen_array = array(); - $berechtigungen->getBenutzerFromBerechtigung($berechtigung_kurzbz); + else + { + $berechtigungen_array = array(); + $berechtigungen->getBenutzerFromBerechtigung($berechtigung_kurzbz); - if (isset($berechtigungen->result) && count($berechtigungen->result) != 0) - { - foreach ($berechtigungen->result as $row) - { - if ($row->uid != '') - { - $berechtigungen_array[] = array('uid' => $row->uid, - 'art' => $row->art, - 'start' => $row->start, - 'ende' => $row->ende, - 'oe_kurzbz' => $row->oe_kurzbz, - 'rolle_kurzbz' => '', - 'funktion_kurzbz' => ''); - } - if ($row->rolle_kurzbz != '') - { - $user_rolleberechtigung = new benutzerberechtigung(); - $user_rolleberechtigung->getBenutzerFromRolle($row->rolle_kurzbz); - foreach ($user_rolleberechtigung->result as $row_rolle) - { - $berechtigungen_array[] = array('uid' => $row_rolle->uid, - 'art' => $row_rolle->art, - 'start' => $row_rolle->start, - 'ende' => $row_rolle->ende, - 'oe_kurzbz' => $row_rolle->oe_kurzbz, - 'rolle_kurzbz' => $row_rolle->rolle_kurzbz, - 'funktion_kurzbz' => $row->funktion_kurzbz); - } - } - if ($row->funktion_kurzbz != '') - { - $user_funktion = new benutzerfunktion(); - $user_funktion->getBenutzerFunktionen($row->funktion_kurzbz); - foreach ($user_funktion->result as $row_funktion) - { - $berechtigungen_array[] = array('uid' => $row_funktion->uid, - 'art' => $row->art, - 'start' => $row->start, - 'ende' => $row->ende, - 'oe_kurzbz' => $row_funktion->oe_kurzbz, - 'rolle_kurzbz' => '', - 'funktion_kurzbz' => $row->funktion_kurzbz); - } - } - } -// var_dump($berechtigungen_array);exit; - // Benutzer der Rolle auflösen - foreach ($berechtigungen->result as $row) - { - $user_rolleberechtigung = new benutzerberechtigung(); - $user_rolleberechtigung->getBenutzerFromRolle($row->rolle_kurzbz); - } + if (isset($berechtigungen->result) && count($berechtigungen->result) != 0) + { + foreach ($berechtigungen->result as $row) + { + if ($row->uid != '') + { + $berechtigungen_array[] = array('uid' => $row->uid, + 'art' => $row->art, + 'start' => $row->start, + 'ende' => $row->ende, + 'oe_kurzbz' => $row->oe_kurzbz, + 'rolle_kurzbz' => '', + 'funktion_kurzbz' => ''); + } + if ($row->rolle_kurzbz != '') + { + $user_rolleberechtigung = new benutzerberechtigung(); + $user_rolleberechtigung->getBenutzerFromRolle($row->rolle_kurzbz); + foreach ($user_rolleberechtigung->result as $row_rolle) + { + $berechtigungen_array[] = array('uid' => $row_rolle->uid, + 'art' => $row_rolle->art, + 'start' => $row_rolle->start, + 'ende' => $row_rolle->ende, + 'oe_kurzbz' => $row_rolle->oe_kurzbz, + 'rolle_kurzbz' => $row_rolle->rolle_kurzbz, + 'funktion_kurzbz' => $row->funktion_kurzbz); + } + } + if ($row->funktion_kurzbz != '') + { + $user_funktion = new benutzerfunktion(); + $user_funktion->getBenutzerFunktionen($row->funktion_kurzbz); + foreach ($user_funktion->result as $row_funktion) + { + $berechtigungen_array[] = array('uid' => $row_funktion->uid, + 'art' => $row->art, + 'start' => $row->start, + 'ende' => $row->ende, + 'oe_kurzbz' => $row_funktion->oe_kurzbz, + 'rolle_kurzbz' => '', + 'funktion_kurzbz' => $row->funktion_kurzbz); + } + } + } +// var_dump($berechtigungen_array);exit; + // Benutzer der Rolle auflösen + foreach ($berechtigungen->result as $row) + { + $user_rolleberechtigung = new benutzerberechtigung(); + $user_rolleberechtigung->getBenutzerFromRolle($row->rolle_kurzbz); + } // Anzahl uniquer UIDs ermitteln $berechtigungen_array_uids = array_map(function ($each) @@ -560,60 +560,60 @@ if($berechtigung_kurzbz != '') $htmlstr .= "

".$berechtigung_kurzbz."

\n"; $htmlstr .= "
".count($berechtigungen_array)." Einträge
"; $htmlstr .= "
".count(array_unique($berechtigungen_array_uids))." UIDs
"; - $htmlstr .= "\n"; - $htmlstr .= " - - - - - - - - - "; - $htmlstr .= "\n"; - - foreach ($berechtigungen_array as $key => $row) - { - $benutzer = new benutzer(); - $benutzer->load($row['uid']); - - $organisationseinheit = new organisationseinheit($row['oe_kurzbz']); - - $heute = strtotime(date('Y-m-d')); - - if ($row['ende'] != '' && strtotime($row['ende']) < $heute) - { - $status = '
'; - } - elseif ($row['start'] != '' && strtotime($row['start']) > $heute) - { - $status = '
'; - } - else - { - $status = '
'; - } - - $htmlstr .= ' '; - $htmlstr .= ' '; - $htmlstr .= ' '; - $htmlstr .= ' '; - $htmlstr .= ' '; - $htmlstr .= ' '; - $htmlstr .= ' '; - $htmlstr .= ' '; - $htmlstr .= ' '; - $htmlstr .= ' '; - $htmlstr .= ' '; - $htmlstr .= ' '; - } - $htmlstr .= '
NachnameVornameUIDArtOE_KurzbzRolleFunktionBenutzer AktivStatusAktion
' . ($benutzer->nachname != '' ? $benutzer->nachname : '') . '' . ($benutzer->vorname != '' ? $benutzer->vorname : '') . '' . ($row['uid'] != '' ? $row['uid'] : '') . '' . $row['art'] . '' . $organisationseinheit->organisationseinheittyp_kurzbz . ' ' .$organisationseinheit->bezeichnung . '' . $row['rolle_kurzbz'] . '' . $row['funktion_kurzbz'] . '' . (isset($row['uid']) ? $benutzer->bnaktiv ? 'Ja' : 'Nein' : '') . '' . $status . 'Benutzerrechte bearbeiten
'; - } - else - { - $htmlstr .= "Für diese Berechtigung sind keine Einträge vorhanden"; - } + $htmlstr .= "\n"; + $htmlstr .= " + + + + + + + + + "; + $htmlstr .= "\n"; + + foreach ($berechtigungen_array as $key => $row) + { + $benutzer = new benutzer(); + $benutzer->load($row['uid']); + + $organisationseinheit = new organisationseinheit($row['oe_kurzbz']); + + $heute = strtotime(date('Y-m-d')); + + if ($row['ende'] != '' && strtotime($row['ende']) < $heute) + { + $status = '
'; + } + elseif ($row['start'] != '' && strtotime($row['start']) > $heute) + { + $status = '
'; + } + else + { + $status = '
'; + } + + $htmlstr .= ' '; + $htmlstr .= ' '; + $htmlstr .= ' '; + $htmlstr .= ' '; + $htmlstr .= ' '; + $htmlstr .= ' '; + $htmlstr .= ' '; + $htmlstr .= ' '; + $htmlstr .= ' '; + $htmlstr .= ' '; + $htmlstr .= ' '; + $htmlstr .= ' '; + } + $htmlstr .= '
NachnameVornameUIDArtOE_KurzbzRolleFunktionBenutzer AktivStatusAktion
' . ($benutzer->nachname != '' ? $benutzer->nachname : '') . '' . ($benutzer->vorname != '' ? $benutzer->vorname : '') . '' . ($row['uid'] != '' ? $row['uid'] : '') . '' . $row['art'] . '' . $organisationseinheit->organisationseinheittyp_kurzbz . ' ' .$organisationseinheit->bezeichnung . '' . $row['rolle_kurzbz'] . '' . $row['funktion_kurzbz'] . '' . (isset($row['uid']) ? $benutzer->bnaktiv ? 'Ja' : 'Nein' : '') . '' . $status . 'Benutzerrechte bearbeiten
'; + } + else + { + $htmlstr .= "Für diese Berechtigung sind keine Einträge vorhanden"; + } } } From 146bb5f336c0d6633baff0f6f92eacabf480cbf8 Mon Sep 17 00:00:00 2001 From: Harald Bamberger Date: Mon, 3 Nov 2025 15:34:54 +0100 Subject: [PATCH 6/6] replace legacy lvplan link in room content with cis4 lvplan link --- .../components/Cis/Cms/Content_types/Raum_contentmittitel.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/public/js/components/Cis/Cms/Content_types/Raum_contentmittitel.js b/public/js/components/Cis/Cms/Content_types/Raum_contentmittitel.js index 8373b6ac9..902a05aca 100644 --- a/public/js/components/Cis/Cms/Content_types/Raum_contentmittitel.js +++ b/public/js/components/Cis/Cms/Content_types/Raum_contentmittitel.js @@ -100,6 +100,11 @@ export default { link_element.href = FHC_JS_DATA_STORAGE_OBJECT.app_root + FHC_JS_DATA_STORAGE_OBJECT.ci_router + "/CisVue/Cms/getRoomInformation/" + room_name; link_element.appendChild(title.cloneNode(true)); title.replaceWith(link_element); + + let lvplanlinks = document.querySelectorAll('.menubox a[href*="stpl_week.php"]'); + for(let lvplanlink of lvplanlinks) { + lvplanlink.href = link_element.href; + } } else {