From c526448270f7153cc98db979dcced3953d9300b4 Mon Sep 17 00:00:00 2001
From: David Siegfried <david.siegfried@uni-vechta.de>
Date: Fri, 8 Sep 2023 08:32:18 +0000
Subject: [PATCH] prevent php8-warnings, closes #3155

Closes #3155

Merge request studip/studip!2131
---
 app/controllers/oer/endpoints.php | 64 ++++++++++++++++---------------
 1 file changed, 33 insertions(+), 31 deletions(-)

diff --git a/app/controllers/oer/endpoints.php b/app/controllers/oer/endpoints.php
index 70b8e5cd916..813e31dc3c8 100644
--- a/app/controllers/oer/endpoints.php
+++ b/app/controllers/oer/endpoints.php
@@ -132,39 +132,41 @@ class Oer_EndpointsController extends StudipController
         }
 
         $output = ['results' => []];
-        foreach ($this->materialien as $material) {
-            $data = [];
-            $data['host'] = [
-                'name' => $material->host ? $material->host['name'] : $host['name'],
-                'url' => $material->host ? $material->host['url'] : $host['url'],
-                'public_key' => $material->host ? $material->host['public_key'] : $host['public_key']
-            ];
-            $data['data'] = $material->toArray();
-            unset($data['data']['material_id']);
-            unset($data['data']['uri_hash']);
-            $data['users'] = [];
-            foreach ($material->users as $userdata) {
-                $user = $userdata['external_contact']
-                    ? ExternalUser::find($userdata['user_id'])
-                    : User::find($userdata['user_id']);
-                $data['users'][] = [
-                    'user_id' => $userdata['external_contact']
-                        ? $user->foreign_id
-                        : $userdata['user_id'],
-                    'name' => $userdata['external_contact']
-                        ? $user['name']
-                        : get_fullname($userdata['user_id']),
-                    'avatar' => $userdata['external_contact']
-                        ? $user->avatar_url
-                        : Avatar::getAvatar($userdata['user_id'])->getURL(Avatar::NORMAL),
-                    'host_url' => $material->host ? $material->host['url'] : $host['url']
+        if (isset($this->materialien)) {
+            foreach ($this->materialien as $material) {
+                $data = [];
+                $data['host'] = [
+                    'name' => $material->host ? $material->host['name'] : $host['name'],
+                    'url' => $material->host ? $material->host['url'] : $host['url'],
+                    'public_key' => $material->host ? $material->host['public_key'] : $host['public_key']
                 ];
+                $data['data'] = $material->toArray();
+                unset($data['data']['material_id']);
+                unset($data['data']['uri_hash']);
+                $data['users'] = [];
+                foreach ($material->users as $userdata) {
+                    $user = $userdata['external_contact']
+                        ? ExternalUser::find($userdata['user_id'])
+                        : User::find($userdata['user_id']);
+                    $data['users'][] = [
+                        'user_id' => $userdata['external_contact']
+                            ? $user->foreign_id
+                            : $userdata['user_id'],
+                        'name' => $userdata['external_contact']
+                            ? $user['name']
+                            : get_fullname($userdata['user_id']),
+                        'avatar' => $userdata['external_contact']
+                            ? $user->avatar_url
+                            : Avatar::getAvatar($userdata['user_id'])->getURL(Avatar::NORMAL),
+                        'host_url' => $material->host ? $material->host['url'] : $host['url']
+                    ];
+                }
+                $data['topics'] = [];
+                foreach ($material->getTopics() as $topic) {
+                    $data['topics'][] = $topic['name'];
+                }
+                $output['results'][] = $data;
             }
-            $data['topics'] = [];
-            foreach ($material->getTopics() as $topic) {
-                $data['topics'][] = $topic['name'];
-            }
-            $output['results'][] = $data;
         }
         $this->render_json($output);
     }
-- 
GitLab