From 5b10cf620f58eee2d365cffb44e18c83eb722db6 Mon Sep 17 00:00:00 2001 From: Jan-Hendrik Willms <tleilax+studip@gmail.com> Date: Wed, 14 Feb 2024 09:41:45 +0000 Subject: [PATCH] fixes #3562 Closes #3562 Merge request studip/studip!2444 --- app/controllers/course/contentmodules.php | 2 +- app/views/course/contentmodules/rename.php | 4 ++-- lib/classes/ForumVisit.php | 14 +++++++++----- lib/classes/I18NStringDatafield.php | 11 +++++++---- lib/classes/JsonApi/Schemas/User.php | 2 +- lib/phplib/Seminar_Session.class.php | 7 ++++--- templates/tabs.php | 2 +- 7 files changed, 25 insertions(+), 17 deletions(-) diff --git a/app/controllers/course/contentmodules.php b/app/controllers/course/contentmodules.php index 7a54ee1c3b4..adb3055a72b 100644 --- a/app/controllers/course/contentmodules.php +++ b/app/controllers/course/contentmodules.php @@ -134,7 +134,7 @@ class Course_ContentmodulesController extends AuthenticatedController Navigation::getItem('/course/admin')->setActive(true); $this->render_json([ 'tabs' => $template->render(), - 'position' => $active_tool->position + 'position' => isset($active_tool) ? $active_tool->position : null, ]); } diff --git a/app/views/course/contentmodules/rename.php b/app/views/course/contentmodules/rename.php index c7f4ef7ccd8..f2ee2488a6b 100644 --- a/app/views/course/contentmodules/rename.php +++ b/app/views/course/contentmodules/rename.php @@ -8,11 +8,11 @@ <input type="text" name="displayname" value="<?= $tool && $tool['metadata'] ? htmlReady($tool['metadata']['displayname']) : ''?>" - placeholder="<?= htmlReady($metadata['displayname']) ?>"> + placeholder="<?= htmlReady($metadata['displayname'] ?? '') ?>"> </label> <div> - <?= htmlReady(sprintf(_('Ursprünglicher Werkzeugname ist "%s".'), $metadata['displayname'])) ?> + <?= htmlReady(sprintf(_('Ursprünglicher Werkzeugname ist "%s".'), $metadata['displayname'] ?? '')) ?> </div> </fieldset> <div data-dialog-button> diff --git a/lib/classes/ForumVisit.php b/lib/classes/ForumVisit.php index 05b4b5a5ac3..06ad7c626d8 100644 --- a/lib/classes/ForumVisit.php +++ b/lib/classes/ForumVisit.php @@ -36,17 +36,21 @@ class ForumVisit { $constraints = ForumEntry::getConstraints($parent_id); + if (!$constraints) { + return 0; + } + $stmt = DBManager::get()->prepare("SELECT COUNT(*) FROM forum_entries WHERE lft >= :lft AND rgt <= :rgt AND user_id != :user_id AND seminar_id = :seminar_id AND topic_id != seminar_id AND chdate > :lastvisit"); - $stmt->bindParam(':user_id', $GLOBALS['user']->id); - $stmt->bindParam(':lft', $constraints['lft']); - $stmt->bindParam(':rgt', $constraints['rgt']); - $stmt->bindParam(':seminar_id', $constraints['seminar_id']); - $stmt->bindParam(':lastvisit', $visitdate); + $stmt->bindValue(':user_id', $GLOBALS['user']->id); + $stmt->bindValue(':lft', $constraints['lft']); + $stmt->bindValue(':rgt', $constraints['rgt']); + $stmt->bindValue(':seminar_id', $constraints['seminar_id']); + $stmt->bindValue(':lastvisit', $visitdate); $stmt->execute(); diff --git a/lib/classes/I18NStringDatafield.php b/lib/classes/I18NStringDatafield.php index 5eee65d4d2a..d61af27d3fe 100644 --- a/lib/classes/I18NStringDatafield.php +++ b/lib/classes/I18NStringDatafield.php @@ -86,17 +86,20 @@ class I18NStringDatafield extends I18NString */ public static function load($object_id, $table = '', $field = '', $base = null) { - if (is_null($base)) { + if ($base === null) { $df = DatafieldEntryModel::findOneBySQL( "`datafield_id` = ? AND `range_id` = ? AND `sec_range_id` = ? AND `lang` = ''", $object_id ); - $base = $df->content ?? ''; + $base = $df ? $df->content : ''; } $table = null; $field = null; - return new self($base, self::fetchDataForField($object_id, $table, $field), - compact('object_id', 'table', 'field')); + return new self( + $base, + self::fetchDataForField($object_id, $table, $field), + compact('object_id', 'table', 'field') + ); } /** diff --git a/lib/classes/JsonApi/Schemas/User.php b/lib/classes/JsonApi/Schemas/User.php index 9a172ebd42f..afb8cf88048 100644 --- a/lib/classes/JsonApi/Schemas/User.php +++ b/lib/classes/JsonApi/Schemas/User.php @@ -72,7 +72,7 @@ class User extends SchemaProvider foreach ($fields as list($attr, $field, $vis)) { $value = - $user[$field] && is_element_visible_for_user($observer->id, $user->id, $visibilities[$vis]) + $user[$field] && is_element_visible_for_user($observer->id, $user->id, $visibilities[$vis] ?? null) ? strip_tags((string) $user[$field]) : null; yield $attr => $value; diff --git a/lib/phplib/Seminar_Session.class.php b/lib/phplib/Seminar_Session.class.php index 4f801073981..8324062dbe1 100644 --- a/lib/phplib/Seminar_Session.class.php +++ b/lib/phplib/Seminar_Session.class.php @@ -416,10 +416,11 @@ class Seminar_Session */ function gc() { - if ($this->module == 'user') { + if ($this->module === 'user') { //bail out if cronjob activated and not called in cli context - if (Config::getInstance()->getValue('CRONJOBS_ENABLE') - && ($task = array_pop(CronjobTask::findByClass('SessionGcJob'))) + if ( + Config::getInstance()->getValue('CRONJOBS_ENABLE') + && ($task = CronjobTask::findOneByClass(SessionGcJob::class)) && count($task->schedules->findBy('active', 1)) && PHP_SAPI !== 'cli' ) { diff --git a/templates/tabs.php b/templates/tabs.php index 47f70697a08..987e0fd1b16 100644 --- a/templates/tabs.php +++ b/templates/tabs.php @@ -12,7 +12,7 @@ foreach (Navigation::getItem("/")->getSubNavigation() as $path => $nav) { <? if (!empty($navigation)): ?> <? foreach ($navigation as $path => $nav) : ?> <? if ($nav->isVisible()) : ?> - <li id="nav_<?= $path1 ?>_<?= $path ?>"<?= $nav->isActive() ? ' class="current"' : '' ?>> + <li id="nav_<?= $path1 ?? '' ?>_<?= $path ?>"<?= $nav->isActive() ? ' class="current"' : '' ?>> <? if ($nav->isEnabled()): ?> <? $attr = array_merge(['class' => ''], $nav->getLinkAttributes()); -- GitLab