From cab295240e7e5895e80eeaae198e0ab814166a7a Mon Sep 17 00:00:00 2001 From: Jan-Hendrik Willms Date: Mon, 6 May 2024 11:53:02 +0000 Subject: fixes #3644 Closes #3644 Merge request studip/studip!2522 --- app/views/news/admin_news.php | 84 ++++++++++++++++++++++++++--------------- lib/models/StudipNews.class.php | 17 ++++++--- 2 files changed, 66 insertions(+), 35 deletions(-) diff --git a/app/views/news/admin_news.php b/app/views/news/admin_news.php index 0376083..db07d03 100644 --- a/app/views/news/admin_news.php +++ b/app/views/news/admin_news.php @@ -1,24 +1,36 @@ - +> $news_items + * @var array $area_structure + */ +?> -url_for('news/admin_news/' . $area_type, array_merge( - $flash['question_param'], - [ + url_for('news/admin_news/' . $area_type, array_merge( + $flash['question_param'], + [ + 'news_filter_term' => htmlReady($news_searchterm), + 'news_filter_start' => $news_startdate, + 'news_filter_end' => $news_enddate, + 'news_filter' => 'set' + ] + )), + $controller->url_for('news/admin_news/' . $area_type, [ 'news_filter_term' => htmlReady($news_searchterm), 'news_filter_start' => $news_startdate, 'news_filter_end' => $news_enddate, 'news_filter' => 'set' - ] - )), - $controller->url_for('news/admin_news/' . $area_type, [ - 'news_filter_term' => htmlReady($news_searchterm), - 'news_filter_start' => $news_startdate, - 'news_filter_end' => $news_enddate, - 'news_filter' => 'set' - ]) - ); -?> + ]) + ); + ?>
@@ -52,9 +64,9 @@
- _('Liste mit Suchbegriff und/oder Zeitraum filtern')]) ?> + _('Liste mit Suchbegriff und/oder Zeitraum filtern')]) ?> - +

@@ -74,12 +86,13 @@ - + - - - - + + + + + @@ -88,6 +101,7 @@ + @@ -99,18 +113,18 @@ - + - > topic) ?> @@ -119,9 +133,19 @@ $body = $parts[0]; $admin_msg = $parts[1] ?? ';' ?> - author) ?> + + owner): ?> + + user_id)->getImageTag(Avatar::SMALL) ?> + owner->getFullName()) ?> + + + author) ?> + + date) ?> date + $news['object']->expire) ?> + views ?> setContext($news['object']->topic); @@ -158,8 +182,8 @@ - - + + diff --git a/lib/models/StudipNews.class.php b/lib/models/StudipNews.class.php index 607f9d3..12eb3e1 100644 --- a/lib/models/StudipNews.class.php +++ b/lib/models/StudipNews.class.php @@ -44,6 +44,7 @@ require_once 'lib/object.inc.php'; * @property SimpleORMapCollection|StudipComment[] $comments has_many StudipComment * @property SimpleORMapCollection|NewsRoles[] $news_roles has_many NewsRoles * @property User $owner belongs_to User + * @property int $views additional field */ class StudipNews extends SimpleORMap implements PrivacyObject { @@ -72,8 +73,15 @@ class StudipNews extends SimpleORMap implements PrivacyObject 'on_delete' => 'delete' ]; - $config['i18n_fields']['topic'] = true; - $config['i18n_fields']['body'] = true; + $config['additional_fields'] = [ + 'views' => [ + 'get' => function (StudipNews $news): int { + return object_return_views($news->id); + }, + ], + ]; + + $config['i18n_fields'] = ['topic', 'body']; // Strip from news body $config['registered_callbacks']['after_initialize'][] = function ($news) { @@ -292,7 +300,7 @@ class StudipNews extends SimpleORMap implements PrivacyObject $news_result = $statement->fetchGrouped(); $objects = [$area => []]; - foreach($news_result as $id => $result) { + foreach ($news_result as $id => $result) { $objects[$area][$id] = [ 'range_id' => $result['range_id'], 'title' => $result['title'] ?? '', @@ -307,8 +315,7 @@ class StudipNews extends SimpleORMap implements PrivacyObject } elseif ($area === 'user') { if ($GLOBALS['user']->id === $result['userid']) { $objects[$area][$id]['title'] = _('Ankündigungen auf Ihrer Profilseite'); - } - else { + } else { $objects[$area][$id]['title'] = sprintf(_('Ankündigungen auf der Profilseite von %s'), get_fullname($result['userid'])); } } elseif ($area === 'global') { -- cgit v1.0