From b50d00e535e3401a4d602498182726fa2a67aeec Mon Sep 17 00:00:00 2001 From: Jan-Hendrik Willms <tleilax+studip@gmail.com> Date: Mon, 5 Feb 2024 13:37:43 +0000 Subject: [PATCH] fixes #3707 Closes #3707 Merge request studip/studip!2580 --- app/controllers/elearning.php | 4 +- .../globalsearch/GlobalSearchRoomBookings.php | 15 +++++--- lib/elearning/ConnectedCMS.class.php | 37 +++++++++---------- lib/elearning/ConnectedLink.class.php | 2 +- lib/elearning/ELearningUtils.class.php | 2 +- lib/elearning/clients/webservice_client.php | 2 +- 6 files changed, 32 insertions(+), 30 deletions(-) diff --git a/app/controllers/elearning.php b/app/controllers/elearning.php index 97b1b9058e0..b2a2117ebe4 100644 --- a/app/controllers/elearning.php +++ b/app/controllers/elearning.php @@ -93,8 +93,8 @@ class ElearningController extends AuthenticatedController $connection_status = $connected_cms[$cms]->getConnectionStatus($cms); foreach ($connection_status as $type => $msg) { - if ($msg["error"] != "") { - PageLayout::postMessage(MessageBox::error(_("Es traten Probleme bei der Anbindung einzelner Lermodule auf. Bitte wenden Sie sich an Ihren Systemadministrator."), [$cms .': ' . $msg["error"]])); + if (!empty($msg["error"])) { + PageLayout::postError(_("Es traten Probleme bei der Anbindung einzelner Lermodule auf. Bitte wenden Sie sich an Ihren Systemadministrator."), [$cms .': ' . $msg["error"]]); $GLOBALS["ELEARNING_INTERFACE_" . $cms . "_ACTIVE"] = false; } } diff --git a/lib/classes/globalsearch/GlobalSearchRoomBookings.php b/lib/classes/globalsearch/GlobalSearchRoomBookings.php index 1d5f7bc0922..93bc292ae7d 100644 --- a/lib/classes/globalsearch/GlobalSearchRoomBookings.php +++ b/lib/classes/globalsearch/GlobalSearchRoomBookings.php @@ -109,12 +109,15 @@ class GlobalSearchRoomBookings extends GlobalSearchModule $additional .= date('d.m.Y H:i', $res['end']); return [ - 'name' => self::mark($res['user_free_name'], $search), - 'url' => URLHelper::getURL('resources.php', [ - 'view' => 'view_schedule', - 'show_object' => $res['resource_id'], - 'start_time' => strtotime('last monday', $res['begin'] + 24 * 60 * 60) - ], true), + 'name' => self::mark($res['name'], $search), + 'url' => URLHelper::getURL( + 'dispatch.php/resources/room_planning/booking_plan/' . $res['id'], + [ + 'defaultDate' => date('Y-m-d', strtotime('last monday', $res['begin'] + 24 * 60 * 60)), + 'display_all_requests' => true, + ], + true + ), 'img' => Icon::create('room-clear')->asImagePath(), 'additional' => self::mark($additional, $search), 'expand' => null diff --git a/lib/elearning/ConnectedCMS.class.php b/lib/elearning/ConnectedCMS.class.php index 3b21eab3336..3dd3bfba262 100644 --- a/lib/elearning/ConnectedCMS.class.php +++ b/lib/elearning/ConnectedCMS.class.php @@ -70,26 +70,25 @@ class ConnectedCMS public function init($cms) { global $ELEARNING_INTERFACE_MODULES; - $this->name = $ELEARNING_INTERFACE_MODULES[$cms]["name"] ?? null; + + $this->name = $ELEARNING_INTERFACE_MODULES[$cms]['name'] ?? null; $this->ABSOLUTE_PATH_ELEARNINGMODULES = $ELEARNING_INTERFACE_MODULES[$cms]["ABSOLUTE_PATH_ELEARNINGMODULES"]; $this->ABSOLUTE_PATH_SOAP = $ELEARNING_INTERFACE_MODULES[$cms]["ABSOLUTE_PATH_SOAP"]; - if (isset($ELEARNING_INTERFACE_MODULES[$cms]["RELATIVE_PATH_DB_CLASSES"])) - { + if (isset($ELEARNING_INTERFACE_MODULES[$cms]["RELATIVE_PATH_DB_CLASSES"])) { $this->RELATIVE_PATH_DB_CLASSES = $ELEARNING_INTERFACE_MODULES[$cms]["RELATIVE_PATH_DB_CLASSES"]; $this->db_classes = $ELEARNING_INTERFACE_MODULES[$cms]["db_classes"]; - } - else { + } else { $this->RELATIVE_PATH_DB_CLASSES = false; } - $this->CLASS_PREFIX = $ELEARNING_INTERFACE_MODULES[$cms]["CLASS_PREFIX"]; - $this->auth_necessary = $ELEARNING_INTERFACE_MODULES[$cms]["auth_necessary"]; - $this->USER_AUTO_CREATE = $ELEARNING_INTERFACE_MODULES[$cms]["USER_AUTO_CREATE"]; - $this->USER_PREFIX = $ELEARNING_INTERFACE_MODULES[$cms]["USER_PREFIX"]; - $this->target_file = $ELEARNING_INTERFACE_MODULES[$cms]["target_file"]; - $this->logo_file = $ELEARNING_INTERFACE_MODULES[$cms]["logo_file"]; - $this->soap_data = $ELEARNING_INTERFACE_MODULES[$cms]["soap_data"]; - $this->types = $ELEARNING_INTERFACE_MODULES[$cms]["types"]; - $this->roles = $ELEARNING_INTERFACE_MODULES[$cms]["roles"]; + $this->CLASS_PREFIX = $ELEARNING_INTERFACE_MODULES[$cms]['CLASS_PREFIX']; + $this->auth_necessary = $ELEARNING_INTERFACE_MODULES[$cms]['auth_necessary']; + $this->USER_AUTO_CREATE = $ELEARNING_INTERFACE_MODULES[$cms]['USER_AUTO_CREATE'] ?? null; + $this->USER_PREFIX = $ELEARNING_INTERFACE_MODULES[$cms]['USER_PREFIX'] ?? null; + $this->target_file = $ELEARNING_INTERFACE_MODULES[$cms]['target_file'] ?? null; + $this->logo_file = $ELEARNING_INTERFACE_MODULES[$cms]['logo_file'] ?? null; + $this->soap_data = $ELEARNING_INTERFACE_MODULES[$cms]['soap_data'] ?? null; + $this->types = $ELEARNING_INTERFACE_MODULES[$cms]['types'] ?? null; + $this->roles = $ELEARNING_INTERFACE_MODULES[$cms]['roles'] ?? null; } /** @@ -100,16 +99,16 @@ class ConnectedCMS */ public function initSubclasses() { - if ($this->auth_necessary) - { - require_once($this->CLASS_PREFIX . "ConnectedUser.class.php"); + if ($this->auth_necessary) { + require_once $this->CLASS_PREFIX . "ConnectedUser.class.php"; $classname = $this->CLASS_PREFIX . "ConnectedUser"; $this->user = new $classname($this->cms_type); - require_once($this->CLASS_PREFIX . "ConnectedPermissions.class.php"); + + require_once $this->CLASS_PREFIX . "ConnectedPermissions.class.php"; $classname = $this->CLASS_PREFIX . "ConnectedPermissions"; $this->permissions = new $classname($this->cms_type); } - require_once($this->CLASS_PREFIX . "ConnectedLink.class.php"); + require_once $this->CLASS_PREFIX . "ConnectedLink.class.php"; $classname = $this->CLASS_PREFIX . "ConnectedLink"; $this->link = new $classname($this->cms_type); } diff --git a/lib/elearning/ConnectedLink.class.php b/lib/elearning/ConnectedLink.class.php index 80c61d1e027..6fa1de51dc1 100644 --- a/lib/elearning/ConnectedLink.class.php +++ b/lib/elearning/ConnectedLink.class.php @@ -33,7 +33,7 @@ class ConnectedLink global $ELEARNING_INTERFACE_MODULES; $this->cms_type = $cms; - $this->cms_link = $ELEARNING_INTERFACE_MODULES[$cms]["ABSOLUTE_PATH_ELEARNINGMODULES"] . $ELEARNING_INTERFACE_MODULES[$cms]["target_file"]; + $this->cms_link = $ELEARNING_INTERFACE_MODULES[$cms]["ABSOLUTE_PATH_ELEARNINGMODULES"] . ($ELEARNING_INTERFACE_MODULES[$cms]["target_file"] ?? null); } /** diff --git a/lib/elearning/ELearningUtils.class.php b/lib/elearning/ELearningUtils.class.php index d027e372102..33fb4a24a99 100644 --- a/lib/elearning/ELearningUtils.class.php +++ b/lib/elearning/ELearningUtils.class.php @@ -25,7 +25,7 @@ class ELearningUtils { global $connected_cms, $ELEARNING_INTERFACE_MODULES; - if (!is_object($connected_cms[$cms])) { + if (!isset($connected_cms[$cms]) || !is_object($connected_cms[$cms])) { require_once "lib/elearning/{$ELEARNING_INTERFACE_MODULES[$cms]['CLASS_PREFIX']}ConnectedCMS.class.php"; $classname = "{$ELEARNING_INTERFACE_MODULES[$cms]['CLASS_PREFIX']}ConnectedCMS"; $connected_cms[$cms] = new $classname($cms); diff --git a/lib/elearning/clients/webservice_client.php b/lib/elearning/clients/webservice_client.php index eea74a0f370..a7f97f2cb6b 100644 --- a/lib/elearning/clients/webservice_client.php +++ b/lib/elearning/clients/webservice_client.php @@ -10,7 +10,7 @@ class WebserviceClient { static $instances = []; - if (!$instances[$classname . $webservice_url]) { + if (!isset($instances[$classname . $webservice_url])) { $instances[$classname . $webservice_url] = new $classname($webservice_url); } -- GitLab