diff options
| author | Jan-Hendrik Willms <tleilax+studip@gmail.com> | 2024-05-06 11:53:02 +0000 |
|---|---|---|
| committer | David Siegfried <david.siegfried@uni-vechta.de> | 2024-05-06 11:53:02 +0000 |
| commit | cab295240e7e5895e80eeaae198e0ab814166a7a (patch) | |
| tree | 10083e177c83f75c5d75d1ebbfb73442c6c5310b /lib | |
| parent | e278ef0a79fbd9ef33b9fa5af1ac7e3e6145c8eb (diff) | |
fixes #3644
Closes #3644
Merge request studip/studip!2522
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/models/StudipNews.class.php | 17 |
1 files changed, 12 insertions, 5 deletions
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 <admin_msg> 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') { |
