From 7602ce0b9ae2a3ba418f5a8500a85b4281788b3d Mon Sep 17 00:00:00 2001
From: Jan-Hendrik Willms <tleilax+studip@gmail.com>
Date: Mon, 20 Feb 2023 18:10:57 +0000
Subject: [PATCH] first batch of changes (packet 1), re #2193

Merge request studip/studip!1419
---
 app/controllers/studiengaenge/fachbereichestgteile.php | 2 +-
 app/controllers/studiengaenge/faecher.php              | 3 ---
 app/views/calendar/single/_select_calendar.php         | 2 +-
 app/views/calendar/single/manage_access.php            | 4 ++--
 app/views/news/admin_news.php                          | 2 +-
 app/views/studiengaenge/abschluesse/index.php          | 2 +-
 app/views/studiengaenge/fachbereiche/index.php         | 2 +-
 app/views/studiengaenge/fachbereichestgteile/index.php | 7 ++++---
 app/views/studiengaenge/kategorien/index.php           | 2 +-
 app/views/studiengaenge/studiengangteile/stgteil.php   | 2 +-
 lib/classes/ModulesNotification.class.php              | 2 +-
 lib/filesystem/FileManager.php                         | 8 ++++----
 lib/models/Studiengang.php                             | 2 +-
 13 files changed, 19 insertions(+), 21 deletions(-)

diff --git a/app/controllers/studiengaenge/fachbereichestgteile.php b/app/controllers/studiengaenge/fachbereichestgteile.php
index 3f8e29bf710..c8037dc1fc5 100644
--- a/app/controllers/studiengaenge/fachbereichestgteile.php
+++ b/app/controllers/studiengaenge/fachbereichestgteile.php
@@ -55,7 +55,7 @@ class Studiengaenge_FachbereichestgteileController extends Studiengaenge_Studien
         if (Request::isXhr()) {
             $this->render_template('studiengaenge/studiengangteile/details_grouped');
         } else {
-            $this->performe_relayed('index');
+            $this->perform_relayed('index');
         }
     }
 
diff --git a/app/controllers/studiengaenge/faecher.php b/app/controllers/studiengaenge/faecher.php
index 7674dde355f..c9546a3bddb 100644
--- a/app/controllers/studiengaenge/faecher.php
+++ b/app/controllers/studiengaenge/faecher.php
@@ -46,9 +46,6 @@ class Studiengaenge_FaecherController extends Studiengaenge_StudiengangteileCont
             }
             $this->count = StudiengangTeil::getCountAssignedFaecher($filter);
         }
-        if (!isset($this->fach_id)) {
-            $this->fach_id = null;
-        }
         $this->show_sidebar_search = true;
         $this->setSidebar();
     }
diff --git a/app/views/calendar/single/_select_calendar.php b/app/views/calendar/single/_select_calendar.php
index 6b8ee1a0af2..e67d62ffc7e 100644
--- a/app/views/calendar/single/_select_calendar.php
+++ b/app/views/calendar/single/_select_calendar.php
@@ -3,7 +3,7 @@
     <section class="hgroup">
         <?= _('Kalender') ?>
         <select class="sidebar-selectlist submit-upon-select" style="width: 16em;" name="range_id">
-            <option value="user.<?= get_username() ?>"<?= (get_userid() == $calendar_id ? ' selected' : '') ?>>
+            <option value="user.<?= get_username() ?>"<?= get_userid() === $range_id ? ' selected' : '' ?>>
                     <?= _("Eigener Kalender") ?>
             </option>
             <? $groups = Calendar::getGroups($GLOBALS['user']->id); ?>
diff --git a/app/views/calendar/single/manage_access.php b/app/views/calendar/single/manage_access.php
index 5aa5ca6a9a5..4f7be8f86b8 100644
--- a/app/views/calendar/single/manage_access.php
+++ b/app/views/calendar/single/manage_access.php
@@ -8,7 +8,7 @@
     <? $perms = [1 => _('Keine'), 2 => _('Lesen'), 4 => _('Schreiben')] ?>
     <table class="default">
         <caption>
-            <?= htmlReady($title) ?>
+            <?= _('Bestehende Freigaben') ?>
             <span class="actions" style="font-size: 0.8em;">
                 <label>
                     <?= _('Auswahl') ?>:
@@ -81,7 +81,7 @@
                             <?= $perms[$own_perms[$user->user_id]] ?>
                         </td>
                         <td class="actions">
-                            <a title="<?= _('Benutzer entfernen') ?>" onClick="STUDIP.CalendarDialog.removeUser(this);" href="<?= $controller->url_for('calendar/single/remove_user/' . $calendar->getRangeId() . $filter, ['user_id' => $user->user_id]) ?>">
+                            <a title="<?= _('Benutzer entfernen') ?>" onClick="STUDIP.CalendarDialog.removeUser(this);" href="<?= $controller->url_for('calendar/single/remove_user/' . $calendar->getRangeId(), ['user_id' => $user->user_id]) ?>">
                                 <?= Icon::create('trash', 'clickable')->asImg() ?>
                             </a>
                         </td>
diff --git a/app/views/news/admin_news.php b/app/views/news/admin_news.php
index 590becae3a0..30b99a3e917 100644
--- a/app/views/news/admin_news.php
+++ b/app/views/news/admin_news.php
@@ -66,7 +66,7 @@
 <? if ($news_items && count($news_items)) : ?>
     <? foreach ($area_structure as $type => $area_data) : ?>
         <? $last_title = 'none' ?>
-        <? if (is_array($news_items[$type]) && count($news_items[$type])) : ?>
+        <? if (isset($news_items[$type]) && is_array($news_items[$type]) && count($news_items[$type]) > 0) : ?>
             <table class="default">
             <? if (!$area_type) : ?>
                 <caption>
diff --git a/app/views/studiengaenge/abschluesse/index.php b/app/views/studiengaenge/abschluesse/index.php
index f123e0ef86d..51cd7335afb 100644
--- a/app/views/studiengaenge/abschluesse/index.php
+++ b/app/views/studiengaenge/abschluesse/index.php
@@ -41,7 +41,7 @@
             <td style="text-align: center;" class="dont-hide"><?= $abschluss->count_studiengaenge ?></td>
             <td></td>
         </tr>
-        <? if ($abschluss_id === $abschluss->id) : ?>
+        <? if (isset($abschluss_id) && $abschluss_id === $abschluss->id) : ?>
             <tr class="loaded-details nohover">
                 <?= $this->render_partial('studiengaenge/studiengaenge/details') ?>
             </tr>
diff --git a/app/views/studiengaenge/fachbereiche/index.php b/app/views/studiengaenge/fachbereiche/index.php
index 54c73c7922a..bfdad37d01b 100644
--- a/app/views/studiengaenge/fachbereiche/index.php
+++ b/app/views/studiengaenge/fachbereiche/index.php
@@ -42,7 +42,7 @@
                 <td style="text-align: center;" class="dont-hide"><?= $fachbereich->count_objects ?></td>
                 <td></td>
             </tr>
-            <? if ($fachbereich_id === $fachbereich->id) : ?>
+            <? if (isset($fachbereich_id) && $fachbereich_id === $fachbereich->id) : ?>
                 <tr class="loaded-details nohover">
                     <?= $this->render_partial('studiengaenge/studiengaenge/details') ?>
                 </tr>
diff --git a/app/views/studiengaenge/fachbereichestgteile/index.php b/app/views/studiengaenge/fachbereichestgteile/index.php
index bdd741fbb69..0fe3cfca56c 100644
--- a/app/views/studiengaenge/fachbereichestgteile/index.php
+++ b/app/views/studiengaenge/fachbereichestgteile/index.php
@@ -35,12 +35,13 @@
                             </a>
                         <? endif; ?>
                     </td>
-                    <? if ($details_id === $fachbereich['institut_id'] || count($stgteil_ids)) : ?>
-                    <? $stgteile = StudiengangTeil::findByFachbereich($fachbereich['institut_id'], ['mvv_stgteil.stgteil_id' => $stgteil_ids], 'fach_name,zusatz,kp', 'ASC'); ?>
+                </tr>
+            <? if (isset($details_id) && $details_id === $fachbereich['institut_id'] || count($stgteil_ids)) : ?>
+                <? $stgteile = StudiengangTeil::findByFachbereich($fachbereich['institut_id'], ['mvv_stgteil.stgteil_id' => $stgteil_ids], 'fach_name,zusatz,kp', 'ASC'); ?>
                 <tr class="loaded-details nohover">
                     <?= $this->render_partial('studiengaenge/studiengangteile/details_grouped', compact('stgteile')) ?>
                 </tr>
-                <? endif; ?>
+            <? endif; ?>
             </tbody>
         <? endforeach ?>
     </table>
diff --git a/app/views/studiengaenge/kategorien/index.php b/app/views/studiengaenge/kategorien/index.php
index 36d33095b5b..e949a825f44 100644
--- a/app/views/studiengaenge/kategorien/index.php
+++ b/app/views/studiengaenge/kategorien/index.php
@@ -42,7 +42,7 @@
                 <td style="text-align: center;" class="dont-hide"><?= $kategorie->count_studiengaenge ?></td>
                 <td></td>
             </tr>
-            <? if ($kategorie_id == $kategorie->id) : ?>
+            <? if (isset($kategorie_id) && $kategorie_id == $kategorie->id) : ?>
                 <tr class="loaded-details nohover">
                     <?= $this->render_partial('studiengaenge/studiengaenge/details') ?>
                 </tr>
diff --git a/app/views/studiengaenge/studiengangteile/stgteil.php b/app/views/studiengaenge/studiengangteile/stgteil.php
index a56d0310b2a..77b73aa3065 100644
--- a/app/views/studiengaenge/studiengangteile/stgteil.php
+++ b/app/views/studiengaenge/studiengangteile/stgteil.php
@@ -21,7 +21,7 @@ use Studip\Button, Studip\LinkButton;
         <legend>
             <?= _('Fach') ?>
         </legend>
-        <? if (is_array($faecher)) : ?>
+        <? if (isset($faecher) && is_array($faecher)) : ?>
             <label>
                 <?= sprintf(_('MÃķgliche FÃĪcher im gewÃĪhlten Fachbereich %s:'), '<strong>' . htmlReady($fachbereich->name) . '</strong>') ?>
                 <select name="fach_item">
diff --git a/lib/classes/ModulesNotification.class.php b/lib/classes/ModulesNotification.class.php
index 7a8b0ef269a..324b5c5d61a 100644
--- a/lib/classes/ModulesNotification.class.php
+++ b/lib/classes/ModulesNotification.class.php
@@ -51,7 +51,7 @@ class ModulesNotification
             $metadata = $module->getMetadata();
 
             $this->registered_notification_modules[$id] = [
-                'icon' => $metadata['icon'],
+                'icon' => !empty($metadata['icon']) ? $metadata['icon'] : null,
                 'name' => !empty($metadata['displayname'])  ? $metadata['displayname'] : $module->getPluginName(),
             ];
             if ($module instanceof CoreOverview) {
diff --git a/lib/filesystem/FileManager.php b/lib/filesystem/FileManager.php
index 6d4d95eb21d..1f790be5f7e 100644
--- a/lib/filesystem/FileManager.php
+++ b/lib/filesystem/FileManager.php
@@ -111,7 +111,7 @@ class FileManager
             return 'file-generic';
         }
 
-        [$category, $type] = explode('/', $mime_type, 2);
+        list($category, $type) = explode('/', $mime_type, 2);
 
         switch($category) {
             case 'image':
@@ -1639,9 +1639,9 @@ class FileManager
             $header_parts = explode(';', $disposition_header);
             foreach ($header_parts as $part) {
                 $part = trim($part);
-                [$key, $value] = explode('=', $part, 2);
-                if (mb_strtolower($key) === 'filename') {
-                    $header['filename'] = trim($value, '"');
+                $chunks = explode('=', $part, 2);
+                if (count($chunks) === 2 && mb_strtolower($chunks[0]) === 'filename') {
+                    $header['filename'] = trim($chunks[1], '"');
                 }
             }
         } else {
diff --git a/lib/models/Studiengang.php b/lib/models/Studiengang.php
index ad2173c1c00..eccd0cd4f85 100644
--- a/lib/models/Studiengang.php
+++ b/lib/models/Studiengang.php
@@ -608,7 +608,7 @@ class Studiengang extends ModuleManagementModelTreeItem
         $result = [];
         foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $status) {
             $result[$status['stat']] = [
-                'name' => $GLOBALS['MVV_STUDIENGANG']['STATUS']['values'][$status['stat']]['name'],
+                'name' => $GLOBALS['MVV_STUDIENGANG']['STATUS']['values'][$status['stat']]['name'] ?? _('Undefinierter Status'),
                 'count_objects' => $status['count_objects']
             ];
         }
-- 
GitLab