aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJan-Hendrik Willms <tleilax+studip@gmail.com>2024-05-06 11:53:02 +0000
committerDavid Siegfried <david.siegfried@uni-vechta.de>2024-05-06 11:53:02 +0000
commitcab295240e7e5895e80eeaae198e0ab814166a7a (patch)
tree10083e177c83f75c5d75d1ebbfb73442c6c5310b /lib
parente278ef0a79fbd9ef33b9fa5af1ac7e3e6145c8eb (diff)
fixes #3644
Closes #3644 Merge request studip/studip!2522
Diffstat (limited to 'lib')
-rw-r--r--lib/models/StudipNews.class.php17
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') {