From 0da036073b530a8ca2316c0525d5a402ccd088b8 Mon Sep 17 00:00:00 2001 From: David Siegfried <david.siegfried@uni-vechta.de> Date: Sat, 11 Mar 2023 13:52:26 +0000 Subject: [PATCH] prevent php-warnings, closes #2351 Closes #2351 Merge request studip/studip!1538 --- app/views/news/admin_news.php | 8 ++++++-- lib/classes/Button.class.php | 5 ++++- lib/models/StudipNews.class.php | 27 +++++++++++++++------------ 3 files changed, 25 insertions(+), 15 deletions(-) diff --git a/app/views/news/admin_news.php b/app/views/news/admin_news.php index 30b99a3e917..0376083f46f 100644 --- a/app/views/news/admin_news.php +++ b/app/views/news/admin_news.php @@ -102,7 +102,7 @@ data-proxyfor=".news_<?= $news['range_id'] ?>" aria-labelledby="<?= _('Alle auswählen') ?>"> </th> - <th colspan="5"><?= mila(htmlReady($news['title'])) . ' ' . htmlReady($news['semester']) ?></th> + <th colspan="5"><?= mila(htmlReady($news['title'] ?? '')) . ' ' . htmlReady($news['semester'] ?? '') ?></th> </tr> <? endif ?> <? $last_title = $title ?> @@ -114,7 +114,11 @@ aria-label="<?= _('Diese Ankündigung zum Entfernen vormerken') ?>" <?= tooltip(_("Diese Ankündigung zum Entfernen vormerken"), false) ?>> </td> <td><?= htmlReady($news['object']->topic) ?></td> - <? list ($body, $admin_msg) = explode('<admin_msg>', $news['object']->body); ?> + <? + $parts = explode('<admin_msg>', $news['object']->body); + $body = $parts[0]; + $admin_msg = $parts[1] ?? ';' + ?> <td><?= htmlReady($news['object']->author) ?></td> <td><?= strftime("%d.%m.%y", $news['object']->date) ?></td> <td><?= strftime("%d.%m.%y", $news['object']->date + $news['object']->expire) ?></td> diff --git a/lib/classes/Button.class.php b/lib/classes/Button.class.php index 5c52e41d0a4..1c2c43753ed 100644 --- a/lib/classes/Button.class.php +++ b/lib/classes/Button.class.php @@ -38,7 +38,10 @@ class Button extends Interactable public function __toString() { // add "button" to attribute @class - @$this->attributes['class'] .= ' button'; + if (!isset($this->attributes['class'])) { + $this->attributes['class'] = ''; + } + $this->attributes['class'] .= ' button'; $attributes = []; ksort($this->attributes); diff --git a/lib/models/StudipNews.class.php b/lib/models/StudipNews.class.php index 593c0df2e24..648ae1ee156 100644 --- a/lib/models/StudipNews.class.php +++ b/lib/models/StudipNews.class.php @@ -143,7 +143,7 @@ class StudipNews extends SimpleORMap implements PrivacyObject unset($ret[$news_id]); } } - return (int) count($ret); + return count($ret); } public static function GetNewsByAuthor($user_id, $as_objects = false) @@ -206,13 +206,13 @@ class StudipNews extends SimpleORMap implements PrivacyObject if ($limit <= 0) { return $news_result; } - + $where_querypart = []; if (isset($startdate)) { - $where_querypart[] = "(date+expire) > ?"; + $where_querypart[] = '(date+expire) > ?'; $query_vars[] = $startdate; } if (isset($enddate)) { - $where_querypart[] = "date < ?"; + $where_querypart[] = 'date < ?'; $query_vars[] = $enddate; } @@ -291,20 +291,23 @@ class StudipNews extends SimpleORMap implements PrivacyObject foreach($news_result as $id => $result) { $objects[$area][$id] = [ 'range_id' => $result['range_id'], - 'title' => $result['title'], + 'title' => $result['title'] ?? '', ]; - if ($area == 'sem') { + if ($area === 'sem') { + if (!isset($objects[$area][$id]['semester'])) { + $objects[$area][$id]['semester'] = ''; + } $objects[$area][$id]['semester'] .= sprintf('(%s%s)', $result['startsem'], $result['startsem'] != $result['endsem'] ? ' - ' . $result['endsem'] : ''); - } elseif ($area == 'user') { - if ($GLOBALS['user']->id == $result['userid']) { + } elseif ($area === 'user') { + if ($GLOBALS['user']->id === $result['userid']) { $objects[$area][$id]['title'] = _('Ankündigungen auf Ihrer Profilseite'); } else { $objects[$area][$id]['title'] = sprintf(_('Ankündigungen auf der Profilseite von %s'), get_fullname($result['userid'])); } - } elseif ($area == 'global') { + } elseif ($area === 'global') { $objects[$area][$id]['title'] = _('Ankündigungen auf der Stud.IP Startseite'); } if ($as_objects) { @@ -422,7 +425,7 @@ class StudipNews extends SimpleORMap implements PrivacyObject $stm = $db->prepare($query); $stm->execute($parameters); $result = $stm->fetchAll(PDO::FETCH_COLUMN); - + $killed = 0; if (count($result) > 0) { $query = "DELETE FROM news WHERE news_id IN (?)"; $statement = $db->prepare($query); @@ -454,6 +457,7 @@ class StudipNews extends SimpleORMap implements PrivacyObject public static function DeleteNewsByAuthor($user_id) { + $deleted = 0; foreach (static::GetNewsByAuthor($user_id, true) as $news) { $deleted += $news->delete(); } @@ -516,8 +520,7 @@ class StudipNews extends SimpleORMap implements PrivacyObject public function getRanges() { - $ranges = $this->news_ranges->pluck('range_id'); - return $ranges; + return $this->news_ranges->pluck('range_id'); } public function issetRange($range_id) -- GitLab