From aefa4f421cdae2c207b724a7619a665cd082ed95 Mon Sep 17 00:00:00 2001
From: Jan-Hendrik Willms <tleilax+studip@gmail.com>
Date: Tue, 7 Mar 2023 08:26:21 +0000
Subject: [PATCH] prevent php8 warnings, fixes #2275

Closes #2275

Merge request studip/studip!1500
---
 app/controllers/questionnaire.php                    |  7 +++----
 app/views/course/feedback/_add_edit_entry_form.php   |  2 +-
 app/views/questionnaire/evaluate.php                 | 12 +++++++++---
 .../question_types/vote/vote_evaluation.php          |  4 ++--
 4 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/app/controllers/questionnaire.php b/app/controllers/questionnaire.php
index 04230cfc245..39bd1b349d7 100644
--- a/app/controllers/questionnaire.php
+++ b/app/controllers/questionnaire.php
@@ -281,13 +281,12 @@ class QuestionnaireController extends AuthenticatedController
         object_set_visit($questionnaire_id, 'vote');
         PageLayout::setTitle(sprintf(_("Fragebogen: %s"), $this->questionnaire->title));
 
+        $this->filtered = [];
         if (Request::submitted('filtered')) {
-            $this->filtered = [
-                $questionnaire_id => Request::getArray('filtered')
-            ];
+            $this->filtered[$questionnaire_id] = Request::getArray('filtered');
         }
 
-        if (Request::isAjax() && !$_SERVER['HTTP_X_DIALOG']) {
+        if (Request::isAjax() && empty($_SERVER['HTTP_X_DIALOG'])) {
             PageLayout::clearMessages();
         }
     }
diff --git a/app/views/course/feedback/_add_edit_entry_form.php b/app/views/course/feedback/_add_edit_entry_form.php
index 57bf7d84267..e7442e24d7b 100644
--- a/app/views/course/feedback/_add_edit_entry_form.php
+++ b/app/views/course/feedback/_add_edit_entry_form.php
@@ -26,7 +26,7 @@
 <? if ($feedback->commentable) : ?>
 <label>
     <?= _('Kommentar') ?>
-    <textarea name="comment"><?= htmlReady($entry->comment) ?></textarea>
+    <textarea name="comment"><?= htmlReady(isset($entry) ? $entry->comment : '') ?></textarea>
 </label>
 <? endif; ?>
 <div>
diff --git a/app/views/questionnaire/evaluate.php b/app/views/questionnaire/evaluate.php
index 186ef2b92e4..1130e737daf 100644
--- a/app/views/questionnaire/evaluate.php
+++ b/app/views/questionnaire/evaluate.php
@@ -1,10 +1,10 @@
-<?
+<?php
 /**
  * @var Questionnaire $questionnaire
  * @var array $filtered
  */
 $only_user_ids = null;
-if ($filtered[$questionnaire->getId()] && $filtered[$questionnaire->getId()]['question_id']) {
+if (isset($filtered[$questionnaire->getId()]) && $filtered[$questionnaire->getId()]['question_id']) {
     foreach ($questionnaire->questions as $question) {
         if ($question->getId() === $filtered[$questionnaire->getId()]['question_id']) {
             $only_user_ids = $question->getUserIdsOfFilteredAnswer($filtered[$questionnaire->getId()]['filterForAnswer']);
@@ -21,7 +21,13 @@ if ($filtered[$questionnaire->getId()] && $filtered[$questionnaire->getId()]['qu
     <? if ($questionnaire->resultsVisible()) : ?>
         <? foreach ($questionnaire->questions as $question) : ?>
             <article class="question question_<?= $question->getId() ?>">
-                <? $template = $question->getResultTemplate($only_user_ids, $filtered[$questionnaire->getId()]['question_id'] === $question->getId() ? $filtered[$questionnaire->getId()]['filterForAnswer'] : null) ?>
+                <? $template = $question->getResultTemplate(
+                    $only_user_ids,
+                    (
+                        isset($filtered[$questionnaire->getId()]['question_id'])
+                        && $filtered[$questionnaire->getId()]['question_id'] === $question->getId()
+                    ) ? $filtered[$questionnaire->getId()]['filterForAnswer'] : null
+                ) ?>
                 <?= $template ? $template->render(['anonAnswers' => $anonAnswers ?? '']) : _("Ergebnisse konnten nicht ausgewertet werden.") ?>
             </article>
         <? endforeach ?>
diff --git a/app/views/questionnaire/question_types/vote/vote_evaluation.php b/app/views/questionnaire/question_types/vote/vote_evaluation.php
index 2c547d00cf5..cce7f3e2da5 100644
--- a/app/views/questionnaire/question_types/vote/vote_evaluation.php
+++ b/app/views/questionnaire/question_types/vote/vote_evaluation.php
@@ -94,13 +94,13 @@ rsort($ordered_results);
                     <a href=""
                        onclick="STUDIP.Questionnaire.addFilter('<?= htmlReady($vote['questionnaire_id']) ?>', '<?= htmlReady($vote->getId()) ?>', '<?= $key ?>'); return false;"
                        title="<?= _('Zeige nur Ergebnisse von Personen an, die diese Option gewählt haben.') ?>">
-                        (<?= $percentage ?>% | <?= (int) $results[$key] ?>/<?= $countAnswers ?>)
+                        (<?= $percentage ?>% | <?= (int) ($results[$key] ?? 0) ?>/<?= $countAnswers ?>)
                     </a>
                 <? endif ?>
             </td>
 
             <td width="50%">
-                <? if (!$vote->questionnaire['anonymous'] && $results[$key]) : ?>
+                <? if (empty($vote->questionnaire['anonymous']) && !empty($results[$key])) : ?>
 
                     <? $users = SimpleCollection::createFromArray(
                         User::findMany($results_users[$key])); ?>
-- 
GitLab