diff options
| author | Jan-Hendrik Willms <tleilax+studip@gmail.com> | 2024-02-14 09:41:45 +0000 |
|---|---|---|
| committer | Jan-Hendrik Willms <tleilax+studip@gmail.com> | 2024-02-14 09:41:45 +0000 |
| commit | 5b10cf620f58eee2d365cffb44e18c83eb722db6 (patch) | |
| tree | d59a65e121da9a601181325977a431962fecd9f9 /lib | |
| parent | 10e3c80b73802f1d70f7b4b3c8ad4ef71f4799be (diff) | |
fixes #3562
Closes #3562
Merge request studip/studip!2444
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/classes/ForumVisit.php | 14 | ||||
| -rw-r--r-- | lib/classes/I18NStringDatafield.php | 11 | ||||
| -rw-r--r-- | lib/classes/JsonApi/Schemas/User.php | 2 | ||||
| -rw-r--r-- | lib/phplib/Seminar_Session.class.php | 7 |
4 files changed, 21 insertions, 13 deletions
diff --git a/lib/classes/ForumVisit.php b/lib/classes/ForumVisit.php index 05b4b5a..06ad7c6 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 5eee65d..d61af27 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 9a172eb..afb8cf8 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 4f80107..8324062 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' ) { |
