From da4ab6bf493742791e8d65e60abbb062d90259d3 Mon Sep 17 00:00:00 2001 From: nkrondraf Date: Tue, 13 Jun 2023 14:06:57 +0200 Subject: [PATCH 1/6] performance optimizations --- cis/private/profile/studienplan.php | 37 ++++++++++++++++------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/cis/private/profile/studienplan.php b/cis/private/profile/studienplan.php index 6097ed136..f66b66197 100644 --- a/cis/private/profile/studienplan.php +++ b/cis/private/profile/studienplan.php @@ -321,6 +321,10 @@ $lv->loadLehrveranstaltungStudienplan($studienplan_id); foreach($lv->lehrveranstaltungen as $row_lva) $lv_arr[$row_lva->lehrveranstaltung_id]=$row_lva; +// Anrechnungen laden +$anrechnung = new anrechnung(); +$anrechnung->getAnrechnungPrestudent($student->prestudent_id); + echo '

'.$p->t('studienplan/studienplan').": $studienplan->bezeichnung ($studienplan_id) - $student->vorname $student->nachname ( $student->uid )

"; echo ' @@ -357,6 +361,7 @@ function drawTree($tree, $depth) { global $uid, $stsem_arr, $noten_arr, $lvangebot_arr, $aktornext; global $datum_obj, $db, $lv_arr, $p, $note_pruef_arr, $student; + global $anrechnung; foreach($tree as $row_tree) { @@ -425,7 +430,7 @@ function drawTree($tree, $depth) echo $icon." ".$termine." lehrveranstaltung_id&language=$sprache','Lehrveranstaltungsinformation','width=700,height=750,resizable=yes,menuebar=no,toolbar=no,status=yes,scrollbars=yes');\">".$row_tree->kurzbz.' - '.$row_tree->bezeichnung.""; else // Bezeichnung der Lehrveranstaltung - echo $icon." ".$termine." ".$row_tree->kurzbz.' - '.$row_tree->bezeichnung.'('.$row_tree->lehrveranstaltung_id.')'; + echo $icon." ".$termine." ".$row_tree->kurzbz.' - '.$row_tree->bezeichnung.' ('.$row_tree->lehrveranstaltung_id.')'; echo $bende.''; // Semester @@ -534,26 +539,26 @@ function drawTree($tree, $depth) } elseif(count($kompatibleLVs) > 0) { - $i = 0; - while(!$found && $i < count($kompatibleLVs)) + while(!$found && $i < count($kompatibleLVs)) { foreach($kompatibleLVs as $komp) { - $anrechnung = new anrechnung(); - $anrechnung->getAnrechnungPrestudent($student->prestudent_id, $row_tree->lehrveranstaltung_id, $komp); - - if(count($anrechnung->result) == 1) + if(count($anrechnung->result)) { - $lv = $anrechnung->result[0]->lehrveranstaltung_id_kompatibel; - if(isset($noten_arr[$lv][$stsem])) - { - $found = true; - if($note_pruef_arr[$noten_arr[$lv][$stsem]]->positiv) - $tdinhalt .= ''.$note_pruef_arr[$noten_arr[$lv][$stsem]]->anmerkung.''; - else - $tdinhalt .= ''.$note_pruef_arr[$noten_arr[$lv][$stsem]]->anmerkung.''; - } + foreach($anrechnung->result as $row) + { + $lv = $row->lehrveranstaltung_id_kompatibel; + if(isset($noten_arr[$lv][$stsem]) && $lv == $komp && $row_tree->lehrveranstaltung_id == $row->lehrveranstaltung_id) + { + $found = true; + if($note_pruef_arr[$noten_arr[$lv][$stsem]]->positiv) + $tdinhalt .= ''.$note_pruef_arr[$noten_arr[$lv][$stsem]]->anmerkung.''; + else + $tdinhalt .= ''.$note_pruef_arr[$noten_arr[$lv][$stsem]]->anmerkung.''; + } + } + } $i++; } From fb3247c91e94ae40eaad2c4bcc7086e8c15f4680 Mon Sep 17 00:00:00 2001 From: nkrondraf Date: Tue, 13 Jun 2023 14:44:01 +0200 Subject: [PATCH 2/6] performance optimizations --- cis/private/profile/studienplan.php | 43 +++++++++++++++-------------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/cis/private/profile/studienplan.php b/cis/private/profile/studienplan.php index f66b66197..8caf7f65d 100644 --- a/cis/private/profile/studienplan.php +++ b/cis/private/profile/studienplan.php @@ -674,38 +674,39 @@ function drawTree($tree, $depth) function checkKompatibleLvs($kompatibleLVs, $student, $row_tree, $noten_arr, $note_pruef_arr, $p, $uid, $negativeNote= null) { + global $anrechnung; $positiv = false; $found = false; $i = 0; + while(!$found && $i < count($kompatibleLVs)) { foreach($kompatibleLVs as $komp) { - - $anrechnung = new anrechnung(); - $anrechnung->getAnrechnungPrestudent($student->prestudent_id, $row_tree->lehrveranstaltung_id, $komp); - - if(count($anrechnung->result) == 1) + if(count($anrechnung->result)) { - $lv = $anrechnung->result[0]->lehrveranstaltung_id_kompatibel; - if(isset($noten_arr[$lv])) + foreach($anrechnung->result as $row) { - $positiv=false; - foreach($noten_arr[$lv] as $note) + $lv = $row->lehrveranstaltung_id_kompatibel; + if(isset($noten_arr[$lv]) && $lv == $komp && $row_tree->lehrveranstaltung_id == $row->lehrveranstaltung_id) { - if($note_pruef_arr[$note]->positiv) - $positiv=true; - } + $positiv=false; + foreach($noten_arr[$lv] as $note) + { + if($note_pruef_arr[$note]->positiv) + $positiv=true; + } - $found = true; - } - else - { - /* wenn zu mehreren kompatiblen lvs eine Anrechnung existiert - * darf found nicht auf false gesetzt werden wenn es zuvor bereits auf true gesetzt wurde - */ - if(!$found) - $found = false; + $found = true; + } + else + { + /* wenn zu mehreren kompatiblen lvs eine Anrechnung existiert + * darf found nicht auf false gesetzt werden wenn es zuvor bereits auf true gesetzt wurde + */ + if(!$found) + $found = false; + } } } $i++; From e200cd445539db9d98c92b9d0453c5e60127bba4 Mon Sep 17 00:00:00 2001 From: Nikolaus Krondraf Date: Mon, 26 Jun 2023 10:46:45 +0200 Subject: [PATCH 3/6] add LDAP service ping configuration --- config/cis.config-default.inc.php | 2 ++ config/system.config-default.inc.php | 2 ++ config/vilesci.config-default.inc.php | 2 ++ config/wawi.config-default.inc.php | 2 ++ 4 files changed, 8 insertions(+) diff --git a/config/cis.config-default.inc.php b/config/cis.config-default.inc.php index 1a72888be..5a7162765 100644 --- a/config/cis.config-default.inc.php +++ b/config/cis.config-default.inc.php @@ -86,6 +86,7 @@ define("AUTH_NAME","FH-Complete"); * LDAP_BIND_USER: DN des Users falls eine Authentifizierung am LDAP noetig ist oder null * LDAP_BIND_PASSWORD: Passwort des Users falls eine Authentifizierung am LDAP noetig ist oder null * LDAP_USER_SEARCH_FILTER: LDAP Attribut in dem der Username steht nach dem gesucht wird (uid | sAMAccountName) + * LDAP_SERVICEPING: LDAP Service Ping verwenden (true | false) */ define('LDAP_SERVER','ldap://ldap.example.com'); define('LDAP_PORT',389); @@ -94,6 +95,7 @@ define('LDAP_BASE_DN','ou=People,dc=example,dc=com'); define('LDAP_BIND_USER',null); define('LDAP_BIND_PASSWORD',null); define('LDAP_USER_SEARCH_FILTER','uid'); +define('LDAP_SERVICEPING',true); // 2. LDAP Server (zB wenn Mitarbeiter und Studierende auf 2 getrennten Servern liegen) /* diff --git a/config/system.config-default.inc.php b/config/system.config-default.inc.php index 45a83837e..0d93b8eec 100644 --- a/config/system.config-default.inc.php +++ b/config/system.config-default.inc.php @@ -52,6 +52,7 @@ * LDAP_BIND_USER: DN des Users falls eine Authentifizierung am LDAP noetig ist oder null * LDAP_BIND_PASSWORD: Passwort des Users falls eine Authentifizierung am LDAP noetig ist oder null * LDAP_USER_SEARCH_FILTER: LDAP Attribut in dem der Username steht nach dem gesucht wird (uid | sAMAccountName) + * LDAP_SERVICEPING: LDAP Service Ping verwenden (true | false) */ define('LDAP_SERVER','ldap://ldap.example.com'); define('LDAP_PORT',389); @@ -60,6 +61,7 @@ define('LDAP_BIND_USER',null); define('LDAP_BIND_PASSWORD',null); define('LDAP_USER_SEARCH_FILTER','uid'); + define('LDAP_SERVICEPING',true); // 2. LDAP Server (zB wenn Mitarbeiter und Studierende auf 2 getrennten Servern liegen) /* diff --git a/config/vilesci.config-default.inc.php b/config/vilesci.config-default.inc.php index cbb3c1136..1d8e476c7 100644 --- a/config/vilesci.config-default.inc.php +++ b/config/vilesci.config-default.inc.php @@ -75,6 +75,7 @@ define('AUTH_NAME', 'FH Complete'); * LDAP_BIND_USER: DN des Users falls eine Authentifizierung am LDAP noetig ist oder null * LDAP_BIND_PASSWORD: Passwort des Users falls eine Authentifizierung am LDAP noetig ist oder null * LDAP_USER_SEARCH_FILTER: LDAP Attribut in dem der Username steht nach dem gesucht wird (uid | sAMAccountName) + * LDAP_SERVICEPING: LDAP Service Ping verwenden (true | false) */ define('LDAP_SERVER', 'ldap://ldap.example.com'); define('LDAP_PORT', 389); @@ -83,6 +84,7 @@ define('LDAP_BASE_DN', 'ou=People,dc=example,dc=com'); define('LDAP_BIND_USER', null); define('LDAP_BIND_PASSWORD', null); define('LDAP_USER_SEARCH_FILTER', 'uid'); +define('LDAP_SERVICEPING',true); // 2. LDAP Server (zB wenn Mitarbeiter und Studierende auf 2 getrennten Servern liegen) /* diff --git a/config/wawi.config-default.inc.php b/config/wawi.config-default.inc.php index bed069e39..a5adccf04 100644 --- a/config/wawi.config-default.inc.php +++ b/config/wawi.config-default.inc.php @@ -53,6 +53,7 @@ define("AUTH_NAME","FHComplete"); * LDAP_BIND_USER: DN des Users falls eine Authentifizierung am LDAP noetig ist oder null * LDAP_BIND_PASSWORD: Passwort des Users falls eine Authentifizierung am LDAP noetig ist oder null * LDAP_USER_SEARCH_FILTER: LDAP Attribut in dem der Username steht nach dem gesucht wird (uid | sAMAccountName) + * LDAP_SERVICEPING: LDAP Service Ping verwenden (true | false) */ define('LDAP_SERVER','ldap://ldap.example.com'); define('LDAP_PORT',389); @@ -61,6 +62,7 @@ define('LDAP_BASE_DN','ou=People,dc=example,dc=com'); define('LDAP_BIND_USER',null); define('LDAP_BIND_PASSWORD',null); define('LDAP_USER_SEARCH_FILTER','uid'); +define('LDAP_SERVICEPING',true); // 2. LDAP Server (zB wenn Mitarbeiter und Studierende auf 2 getrennten Servern liegen) /* From efdd81ac0d945d8a3fa0097eee137e1c7b5578df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Mon, 26 Jun 2023 13:45:10 +0200 Subject: [PATCH 4/6] Problem behoben wodurch keine Fotoliste erstellt werden konnte wenn eine Person kein Foto hochgeladen hat --- cis/private/lehre/fotoliste.pdf.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cis/private/lehre/fotoliste.pdf.php b/cis/private/lehre/fotoliste.pdf.php index 475905e45..bfd2fb3e5 100644 --- a/cis/private/lehre/fotoliste.pdf.php +++ b/cis/private/lehre/fotoliste.pdf.php @@ -274,6 +274,8 @@ if ($result = $db->db_query($qry)) { //add foto to document $doc->addImage($foto_url, trim($row->person_id) . '.jpg', 'image/jpg'); + + $foto_url = 'Pictures/' . trim($row->person_id) . '.jpg'; } elseif ($row->foto_sperre == 't') { @@ -290,7 +292,7 @@ if ($result = $db->db_query($qry)) { 'personenkennzeichen' => trim($row->matrikelnr), 'geschlecht' => $row->geschlecht, 'foto_gesperrt' => $row->foto_sperre, // f/t - 'foto_url' => 'Pictures/' . trim($row->person_id) . '.jpg', + 'foto_url' => $foto_url, 'studiengruppe' => $student_studiengruppe, 'verband' => trim($row->verband), 'gruppe' => trim($row->gruppe), From d6cce60b8fe852ee7f2a6096adf02fa0f9736ea8 Mon Sep 17 00:00:00 2001 From: nkrondraf Date: Tue, 27 Jun 2023 08:25:14 +0200 Subject: [PATCH 5/6] add LDAP service ping configuration to second LDAP server --- config/cis.config-default.inc.php | 1 + config/system.config-default.inc.php | 1 + config/vilesci.config-default.inc.php | 1 + config/wawi.config-default.inc.php | 1 + 4 files changed, 4 insertions(+) diff --git a/config/cis.config-default.inc.php b/config/cis.config-default.inc.php index 5a7162765..ce1070fd3 100644 --- a/config/cis.config-default.inc.php +++ b/config/cis.config-default.inc.php @@ -106,6 +106,7 @@ define('LDAP2_BASE_DN','ou=Mitarbeiter,dc=example,dc=com'); define('LDAP2_BIND_USER','cn=fhcomplete,dc=example,dc=com'); define('LDAP2_BIND_PASSWORD','Pa55w0rd'); define('LDAP2_USER_SEARCH_FILTER','sAMAccountName'); +define('LDAP2_SERVICEPING',true); */ // LDAP MASTER SERVER fuer Passwort Aenderungen diff --git a/config/system.config-default.inc.php b/config/system.config-default.inc.php index 0d93b8eec..d3afea521 100644 --- a/config/system.config-default.inc.php +++ b/config/system.config-default.inc.php @@ -72,6 +72,7 @@ define('LDAP2_BIND_USER','cn=fhcomplete,dc=example,dc=com'); define('LDAP2_BIND_PASSWORD','Pa55w0rd'); define('LDAP2_USER_SEARCH_FILTER','sAMAccountName'); + define('LDAP2_SERVICEPING',true); */ ?> diff --git a/config/vilesci.config-default.inc.php b/config/vilesci.config-default.inc.php index 1d8e476c7..b0077e56a 100644 --- a/config/vilesci.config-default.inc.php +++ b/config/vilesci.config-default.inc.php @@ -95,6 +95,7 @@ define('LDAP2_BASE_DN', 'ou=Mitarbeiter,dc=example,dc=com'); define('LDAP2_BIND_USER', 'cn=fhcomplete,dc=example,dc=com'); define('LDAP2_BIND_PASSWORD', 'Pa55w0rd'); define('LDAP2_USER_SEARCH_FILTER', 'sAMAccountName'); +define('LDAP2_SERVICEPING',true); */ // LDAP MASTER SERVER fuer Passwort Aenderungen diff --git a/config/wawi.config-default.inc.php b/config/wawi.config-default.inc.php index a5adccf04..e1fbbb69c 100644 --- a/config/wawi.config-default.inc.php +++ b/config/wawi.config-default.inc.php @@ -73,6 +73,7 @@ define('LDAP2_BASE_DN','ou=Mitarbeiter,dc=example,dc=com'); define('LDAP2_BIND_USER','cn=fhcomplete,dc=example,dc=com'); define('LDAP2_BIND_PASSWORD','Pa55w0rd'); define('LDAP2_USER_SEARCH_FILTER','sAMAccountName'); +define('LDAP2_SERVICEPING',true); */ // Attribut fuer Zutrittskartennummer im LDAP From c89f375015e068eb3cc89e332c8d541395eb394c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Tue, 27 Jun 2023 09:33:23 +0200 Subject: [PATCH 6/6] Removed ServicePing Config for Second LDAP --- config/cis.config-default.inc.php | 3 +-- config/system.config-default.inc.php | 3 +-- config/vilesci.config-default.inc.php | 3 +-- config/wawi.config-default.inc.php | 3 +-- 4 files changed, 4 insertions(+), 8 deletions(-) diff --git a/config/cis.config-default.inc.php b/config/cis.config-default.inc.php index ce1070fd3..27e0a9a70 100644 --- a/config/cis.config-default.inc.php +++ b/config/cis.config-default.inc.php @@ -86,7 +86,7 @@ define("AUTH_NAME","FH-Complete"); * LDAP_BIND_USER: DN des Users falls eine Authentifizierung am LDAP noetig ist oder null * LDAP_BIND_PASSWORD: Passwort des Users falls eine Authentifizierung am LDAP noetig ist oder null * LDAP_USER_SEARCH_FILTER: LDAP Attribut in dem der Username steht nach dem gesucht wird (uid | sAMAccountName) - * LDAP_SERVICEPING: LDAP Service Ping verwenden (true | false) + * LDAP_SERVICEPING: LDAP Service Ping verwenden (true | false) - wirksam für alle LDAP Server */ define('LDAP_SERVER','ldap://ldap.example.com'); define('LDAP_PORT',389); @@ -106,7 +106,6 @@ define('LDAP2_BASE_DN','ou=Mitarbeiter,dc=example,dc=com'); define('LDAP2_BIND_USER','cn=fhcomplete,dc=example,dc=com'); define('LDAP2_BIND_PASSWORD','Pa55w0rd'); define('LDAP2_USER_SEARCH_FILTER','sAMAccountName'); -define('LDAP2_SERVICEPING',true); */ // LDAP MASTER SERVER fuer Passwort Aenderungen diff --git a/config/system.config-default.inc.php b/config/system.config-default.inc.php index d3afea521..a1f70086a 100644 --- a/config/system.config-default.inc.php +++ b/config/system.config-default.inc.php @@ -52,7 +52,7 @@ * LDAP_BIND_USER: DN des Users falls eine Authentifizierung am LDAP noetig ist oder null * LDAP_BIND_PASSWORD: Passwort des Users falls eine Authentifizierung am LDAP noetig ist oder null * LDAP_USER_SEARCH_FILTER: LDAP Attribut in dem der Username steht nach dem gesucht wird (uid | sAMAccountName) - * LDAP_SERVICEPING: LDAP Service Ping verwenden (true | false) + * LDAP_SERVICEPING: LDAP Service Ping verwenden (true | false) - wirksam für alle LDAP Server */ define('LDAP_SERVER','ldap://ldap.example.com'); define('LDAP_PORT',389); @@ -72,7 +72,6 @@ define('LDAP2_BIND_USER','cn=fhcomplete,dc=example,dc=com'); define('LDAP2_BIND_PASSWORD','Pa55w0rd'); define('LDAP2_USER_SEARCH_FILTER','sAMAccountName'); - define('LDAP2_SERVICEPING',true); */ ?> diff --git a/config/vilesci.config-default.inc.php b/config/vilesci.config-default.inc.php index b0077e56a..fdd971be0 100644 --- a/config/vilesci.config-default.inc.php +++ b/config/vilesci.config-default.inc.php @@ -75,7 +75,7 @@ define('AUTH_NAME', 'FH Complete'); * LDAP_BIND_USER: DN des Users falls eine Authentifizierung am LDAP noetig ist oder null * LDAP_BIND_PASSWORD: Passwort des Users falls eine Authentifizierung am LDAP noetig ist oder null * LDAP_USER_SEARCH_FILTER: LDAP Attribut in dem der Username steht nach dem gesucht wird (uid | sAMAccountName) - * LDAP_SERVICEPING: LDAP Service Ping verwenden (true | false) + * LDAP_SERVICEPING: LDAP Service Ping verwenden (true | false) - wirksam für alle LDAP Server */ define('LDAP_SERVER', 'ldap://ldap.example.com'); define('LDAP_PORT', 389); @@ -95,7 +95,6 @@ define('LDAP2_BASE_DN', 'ou=Mitarbeiter,dc=example,dc=com'); define('LDAP2_BIND_USER', 'cn=fhcomplete,dc=example,dc=com'); define('LDAP2_BIND_PASSWORD', 'Pa55w0rd'); define('LDAP2_USER_SEARCH_FILTER', 'sAMAccountName'); -define('LDAP2_SERVICEPING',true); */ // LDAP MASTER SERVER fuer Passwort Aenderungen diff --git a/config/wawi.config-default.inc.php b/config/wawi.config-default.inc.php index e1fbbb69c..0081c2420 100644 --- a/config/wawi.config-default.inc.php +++ b/config/wawi.config-default.inc.php @@ -53,7 +53,7 @@ define("AUTH_NAME","FHComplete"); * LDAP_BIND_USER: DN des Users falls eine Authentifizierung am LDAP noetig ist oder null * LDAP_BIND_PASSWORD: Passwort des Users falls eine Authentifizierung am LDAP noetig ist oder null * LDAP_USER_SEARCH_FILTER: LDAP Attribut in dem der Username steht nach dem gesucht wird (uid | sAMAccountName) - * LDAP_SERVICEPING: LDAP Service Ping verwenden (true | false) + * LDAP_SERVICEPING: LDAP Service Ping verwenden (true | false) - wirksam für alle LDAP Server */ define('LDAP_SERVER','ldap://ldap.example.com'); define('LDAP_PORT',389); @@ -73,7 +73,6 @@ define('LDAP2_BASE_DN','ou=Mitarbeiter,dc=example,dc=com'); define('LDAP2_BIND_USER','cn=fhcomplete,dc=example,dc=com'); define('LDAP2_BIND_PASSWORD','Pa55w0rd'); define('LDAP2_USER_SEARCH_FILTER','sAMAccountName'); -define('LDAP2_SERVICEPING',true); */ // Attribut fuer Zutrittskartennummer im LDAP