From 1ff1c2c56d54495438b47b4865a251be37d8bb3b Mon Sep 17 00:00:00 2001
From: Elmar Ludwig <elmar.ludwig@uni-osnabrueck.de>
Date: Mon, 8 Aug 2022 07:11:17 +0000
Subject: [PATCH] fix PHP warnings (see also !450), fixes #1346

Closes #1346

Merge request studip/studip!870
---
 .../modules/ExternModuleTemplateLectures.class.php     |  2 +-
 lib/extern/modules/views/ExternSemBrowse.class.php     | 10 ++++++++--
 .../modules/views/ExternSemBrowseTable.class.php       |  5 ++---
 3 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/lib/extern/modules/ExternModuleTemplateLectures.class.php b/lib/extern/modules/ExternModuleTemplateLectures.class.php
index 46c470e9a84..f7b2b1da043 100644
--- a/lib/extern/modules/ExternModuleTemplateLectures.class.php
+++ b/lib/extern/modules/ExternModuleTemplateLectures.class.php
@@ -470,7 +470,7 @@ class ExternSemBrowseTemplate extends SemBrowse {
                         $doz_titlerear = array_keys($sem_data[$seminar_id]['title_rear']);
                         $doz_uname = array_keys($sem_data[$seminar_id]['username']);
                         $doz_position = array_keys($sem_data[$seminar_id]['position']);
-                        if (sizeof($doz_position) < $doz_name) {
+                        if (sizeof($doz_position) < sizeof($doz_name)) {
                             $doz_position = array_fill(0, sizeof($doz_name), 0);
                         }
                         if (is_array($doz_name)){
diff --git a/lib/extern/modules/views/ExternSemBrowse.class.php b/lib/extern/modules/views/ExternSemBrowse.class.php
index bbebdbd2577..4ba487e980f 100644
--- a/lib/extern/modules/views/ExternSemBrowse.class.php
+++ b/lib/extern/modules/views/ExternSemBrowse.class.php
@@ -78,8 +78,14 @@ class ExternSemBrowse extends SemBrowse {
             }
         }
 
-        $switch_time = mktime(0, 0, 0, date("m"),
-                date("d") + 7 * $this->config->getValue("Main", "semswitch"), date("Y"));
+        // Is a semester switch defined?
+        $week_offset = $this->config->getValue('Main', 'semswitch');
+        if (ctype_digit($week_offset)) {
+            $switch_time = strtotime("+{$week_offset} weeks 0:00:00");
+        } else {
+            $switch_time = strtotime('0:00:00');
+        }
+
         // get current semester
         $current_sem = get_sem_num($switch_time) + 1;
 
diff --git a/lib/extern/modules/views/ExternSemBrowseTable.class.php b/lib/extern/modules/views/ExternSemBrowseTable.class.php
index 3659100ae7c..d9c6d11056b 100644
--- a/lib/extern/modules/views/ExternSemBrowseTable.class.php
+++ b/lib/extern/modules/views/ExternSemBrowseTable.class.php
@@ -138,8 +138,7 @@ class ExternSemBrowseTable extends SemBrowse {
                 $the_tree->buildIndex();
                 $selected_ranges = array_merge([$stid], $the_tree->getKidsKids($stid));
             }
-            if (!$this->module->config->getValue('SelectSubjectAreas', 'selectallsubjectareas')
-                    && count($selected_ranges)) {
+            if (!$this->module->config->getValue('SelectSubjectAreas', 'selectallsubjectareas') && $selected_ranges) {
                 if ($this->module->config->getValue('SelectSubjectAreas', 'reverseselection')) {
                     $sem_range_query =  "AND seminar_sem_tree.sem_tree_id NOT IN ('".implode("','", $selected_ranges)."')";
                 } else {
@@ -155,7 +154,7 @@ class ExternSemBrowseTable extends SemBrowse {
                 $selected_semtypes = [Request::get('semstatus')];
             }
             $sem_types_array = [];
-            if (count($selected_semtypes)) {
+            if ($selected_semtypes) {
                 foreach ($selected_semtypes as $i => $active) {
                     if ($active == '1') {
                         $sem_types_array[] = $i + 1;
-- 
GitLab