diff --git a/mod/forum/classes/local/factories/renderer.php b/mod/forum/classes/local/factories/renderer.php index a8a7b0d3fa4..4ff011a4958 100644 --- a/mod/forum/classes/local/factories/renderer.php +++ b/mod/forum/classes/local/factories/renderer.php @@ -481,11 +481,24 @@ class renderer { $discussionentriesids, $canseeanyprivatereply ); + $forumdatamapper = $this->legacydatamapperfactory->get_forum_data_mapper(); + $forumrecord = $forumdatamapper->to_legacy_object($forum); + if (forum_tp_is_tracked($forumrecord, $user)) { + $discussionunreadscount = $postvault->get_unread_count_for_discussion_ids( + $user, + $discussionentriesids, + $canseeanyprivatereply + ); + } else { + $discussionunreadscount = []; + } - array_walk($exportedposts['posts'], function($post) use ($discussionrepliescount) { + array_walk($exportedposts['posts'], function($post) use ($discussionrepliescount, $discussionunreadscount) { $post->discussionrepliescount = $discussionrepliescount[$post->discussionid] ?? 0; + $post->discussionunreadscount = $discussionunreadscount[$post->discussionid] ?? 0; // TODO: Find a better solution due to language differences when defining the singular and plural form. $post->isreplyplural = $post->discussionrepliescount != 1 ? true : false; + $post->isunreadplural = $post->discussionunreadscount != 1 ? true : false; }); $exportedposts['state']['hasdiscussions'] = $exportedposts['posts'] ? true : false; diff --git a/mod/forum/templates/social_discussion_list.mustache b/mod/forum/templates/social_discussion_list.mustache index 121c6631dfd..6ec221913a2 100644 --- a/mod/forum/templates/social_discussion_list.mustache +++ b/mod/forum/templates/social_discussion_list.mustache @@ -38,7 +38,9 @@ {{< mod_forum/forum_discussion_post }} {{$footer}} {{/footer}} {{$replyoutput}}{{/replyoutput}}