From 85110ce3ecdcf58beee54dad2ba233dc72e68b4e Mon Sep 17 00:00:00 2001
From: David Siegfried <ds.siegfried@gmail.com>
Date: Wed, 8 Mar 2023 18:05:21 +0100
Subject: [PATCH] prevent php-warnings, closes #2308

---
 app/controllers/admin/ilias_interface.php     | 30 ++++++++++---------
 .../edit_interface_settings.php               | 16 +++++-----
 2 files changed, 24 insertions(+), 22 deletions(-)

diff --git a/app/controllers/admin/ilias_interface.php b/app/controllers/admin/ilias_interface.php
index c718e1c51a6..fd3ac073f00 100644
--- a/app/controllers/admin/ilias_interface.php
+++ b/app/controllers/admin/ilias_interface.php
@@ -66,20 +66,20 @@ class Admin_IliasInterfaceController extends AuthenticatedController
     {
         Navigation::activateItem('admin/config/ilias_interface');
 
-        PageLayout::setTitle(_("Verwaltung der ILIAS-Schnittstelle"));
+        PageLayout::setTitle(_('Verwaltung der ILIAS-Schnittstelle'));
 
         $widget = new ActionsWidget();
 
         $widget->addLink(
                 _('Schnittstelle konfigurieren'),
                 $this->url_for('admin/ilias_interface/edit_interface_settings'),
-                Icon::create('admin', 'clickable'),
+                Icon::create('admin'),
                 ['data-dialog' => 'size=auto']
                 );
         $widget->addLink(
                 _('ILIAS-Installation hinzufügen'),
                 $this->url_for('admin/ilias_interface/edit_server/new'),
-                Icon::create('add', 'clickable'),
+                Icon::create('add'),
                 ['data-dialog' => 'size=auto']
                 );
         $this->sidebar->addWidget($widget);
@@ -125,7 +125,7 @@ class Admin_IliasInterfaceController extends AuthenticatedController
         $this->ilias_version = '';
         $this->ilias_version_date = '';
         $this->clients = [];
-        if ($index == 'new') {
+        if ($index === 'new') {
             // default values
             $this->ilias_config = [
                             'is_active' => false,
@@ -178,7 +178,7 @@ class Admin_IliasInterfaceController extends AuthenticatedController
                     } else {
                         $this->ilias_version = '';
                     }
-                    if (Request::get('ilias_index') != 'new') {
+                    if (Request::get('ilias_index') !== 'new') {
                         // use data from previously connected ILIAS
                         $index = Request::get('ilias_index');
                     } else {
@@ -189,9 +189,9 @@ class Admin_IliasInterfaceController extends AuthenticatedController
                         }
                         // find new unique index
                         $index = 'ilias'.ConnectedIlias::getIntVersion($this->ilias_version);
-                        if (is_array($this->ilias_configs[$index]) OR is_array($this->existing_indices[$index])) {
+                        if (is_array($this->ilias_configs[$index]) || is_array($this->existing_indices[$index])) {
                             $i = 1;
-                            while (is_array($this->ilias_configs[$index.'-'.$i]) OR is_array($this->existing_indices[$index.'-'.$i])) {
+                            while (is_array($this->ilias_configs[$index.'-'.$i]) || is_array($this->existing_indices[$index.'-'.$i])) {
                                 $i++;
                             }
                             $index = $index.'-'.$i;
@@ -247,7 +247,7 @@ class Admin_IliasInterfaceController extends AuthenticatedController
 
     /**
      * edit connected ILIAS permissions settings
-     * @param $index Index of ILIAS settings
+     * @param string $index Index of ILIAS settings
      */
     public function edit_permissions_action($index)
     {
@@ -257,7 +257,7 @@ class Admin_IliasInterfaceController extends AuthenticatedController
 
     /**
      * Deletes given ILIAS settings from configuration
-     * @param $index Index of ILIAS settings
+     * @param string $index Index of ILIAS settings
      */
     public function delete_action($index)
     {
@@ -272,7 +272,7 @@ class Admin_IliasInterfaceController extends AuthenticatedController
 
     /**
      * Save connected ILIAS installation settings
-     * @param $index Index of ILIAS settings
+     * @param string $index Index of ILIAS settings
      */
     public function save_action($index)
     {
@@ -359,9 +359,10 @@ class Admin_IliasInterfaceController extends AuthenticatedController
                 }
             }
         }
-        // show error messages
-        foreach ($connected_ilias->getError() as $error) {
-            PageLayout::postError($error);
+        if (isset($connected_ilias)) { // show error messages
+            foreach ($connected_ilias->getError() as $error) {
+                PageLayout::postError($error);
+            }
         }
         $this->redirect($this->url_for('admin/ilias_interface'));
     }
@@ -376,7 +377,7 @@ class Admin_IliasInterfaceController extends AuthenticatedController
 
         //check stored configuration
         $connected_ilias = new ConnectedIlias($index);
-        if ($connected_ilias->getConnectionSettingsStatus() AND $connected_ilias->getContentSettingsStatus() AND $connected_ilias->getPermissionsSettingsStatus()) {
+        if ($connected_ilias->getConnectionSettingsStatus() && $connected_ilias->getContentSettingsStatus() && $connected_ilias->getPermissionsSettingsStatus()) {
             //store config entry
             Config::get()->store('ILIAS_INTERFACE_SETTINGS', $this->ilias_configs);
             PageLayout::postSuccess(_('ILIAS-Installation aktiviert.'));
@@ -427,6 +428,7 @@ class Admin_IliasInterfaceController extends AuthenticatedController
                     }
                 }
             } elseif (Request::get('ilias_call')) {
+                $params = [];
                 foreach ($this->soap_methods[Request::get('ilias_call')] as $param) {
                     $params[$param] = Request::get('ilias_soap_param_'.$param);
                 }
diff --git a/app/views/admin/ilias_interface/edit_interface_settings.php b/app/views/admin/ilias_interface/edit_interface_settings.php
index 9b0627d6300..0e273bcf71a 100644
--- a/app/views/admin/ilias_interface/edit_interface_settings.php
+++ b/app/views/admin/ilias_interface/edit_interface_settings.php
@@ -12,35 +12,35 @@
         <input type="text" name="ilias_interface_moduletitle" size="50" maxlength="255" value="<?= htmlReady($ilias_interface_moduletitle) ?>" required>
     </label>
     <label>
-        <input type="checkbox" name="ilias_interface_edit_moduletitle" value="1" <?= $ilias_interface_config['edit_moduletitle'] ? 'checked' : '' ?>>
+        <input type="checkbox" name="ilias_interface_edit_moduletitle" value="1" <?= !empty($ilias_interface_config['edit_moduletitle']) ? 'checked' : '' ?>>
         <span><?= _('Lehrende können den Seitennamen der ILIAS-Schnittstelle in Veranstaltungen anpassen') ?></span>
     </label>
     <label>
-        <input type="checkbox" name="ilias_interface_show_offline" value="1" <?= $ilias_interface_config['show_offline'] ? 'checked' : '' ?>>
+        <input type="checkbox" name="ilias_interface_show_offline" value="1" <?= !empty($ilias_interface_config['show_offline']) ? 'checked' : '' ?>>
         <span><?= _('Namen von Lernobjekten und Kursen, die in ILIAS offline sind, sind in Stud.IP sichtbar') ?></span>
     </label>
     <label>
-        <input type="checkbox" name="ilias_interface_add_statusgroups" value="1" <?= $ilias_interface_config['add_statusgroups'] ? 'checked' : '' ?>>
+        <input type="checkbox" name="ilias_interface_add_statusgroups" value="1" <?= !empty($ilias_interface_config['add_statusgroups']) ? 'checked' : '' ?>>
         <span><?= _('Lehrende können Statusgruppen nach ILIAS übertragen') ?></span>
     </label>
     <label>
-        <input type="checkbox" name="ilias_interface_allow_change_course" value="1" <?= $ilias_interface_config['allow_change_course'] ? 'checked' : '' ?>>
+        <input type="checkbox" name="ilias_interface_allow_change_course" value="1" <?= !empty($ilias_interface_config['allow_change_course']) ? 'checked' : '' ?>>
         <span><?= _('Lehrende können die Kursverknüpfung einer Veranstaltung ändern') ?></span>
     </label>
     <label>
-        <input type="checkbox" name="ilias_interface_allow_add_own_course" value="1" <?= $ilias_interface_config['allow_add_own_course'] ? 'checked' : '' ?>>
+        <input type="checkbox" name="ilias_interface_allow_add_own_course" value="1" <?= !empty($ilias_interface_config['allow_add_own_course']) ? 'checked' : '' ?>>
         <span><?= _('Lehrende können einen eigenen ILIAS-Kurs verknüpfen, der noch nicht mit Stud.IP verbunden ist') ?></span>
     </label>
     <label>
-        <input type="checkbox" name="ilias_interface_show_tools_page" value="1" <?= $ilias_interface_config['show_tools_page'] ? 'checked' : '' ?>>
+        <input type="checkbox" name="ilias_interface_show_tools_page" value="1" <?= !empty($ilias_interface_config['show_tools_page']) ? 'checked' : '' ?>>
         <span><?= _('Account-Seite im Tools-Bereich ist für alle Nutzenden (auch für Studierende ohne Berechtigung zum Anlegen von Lernobjekten) sichtbar') ?></span>
     </label>
     <label>
-        <input type="checkbox" name="ilias_interface_search_active" value="1" <?= $ilias_interface_config['search_active'] ? 'checked' : '' ?>>
+        <input type="checkbox" name="ilias_interface_search_active" value="1" <?= !empty($ilias_interface_config['search_active']) ? 'checked' : '' ?>>
         <span><?= _('Suche nach Lernobjekten verfügbar') ?></span>
     </label>
     <label>
-        <input type="checkbox" name="ilias_interface_cache" value="1" <?= $ilias_interface_config['cache'] ? 'checked' : '' ?>>
+        <input type="checkbox" name="ilias_interface_cache" value="1" <?= !empty($ilias_interface_config['cache']) ? 'checked' : '' ?>>
         <span><?= _('SOAP-Cache') ?></span>
     </label>
     <? if (!empty($existing_indices)) : ?>
-- 
GitLab