MDL-66707 mod_forum: do not blindly mark discussion replies as read

This commit is contained in:
Shamim Rezaie 2020-07-15 20:54:19 +10:00
parent ee23a8cf25
commit 4bd0eaf732

View file

@ -328,9 +328,6 @@ $rendererfactory = mod_forum\local\container::get_renderer_factory();
$discussionrenderer = $rendererfactory->get_discussion_renderer($forum, $discussion, $displaymode); $discussionrenderer = $rendererfactory->get_discussion_renderer($forum, $discussion, $displaymode);
$orderpostsby = $displaymode == FORUM_MODE_FLATNEWEST ? 'created DESC' : 'created ASC'; $orderpostsby = $displaymode == FORUM_MODE_FLATNEWEST ? 'created DESC' : 'created ASC';
$replies = $postvault->get_replies_to_post($USER, $post, $capabilitymanager->can_view_any_private_reply($USER), $orderpostsby); $replies = $postvault->get_replies_to_post($USER, $post, $capabilitymanager->can_view_any_private_reply($USER), $orderpostsby);
$postids = array_map(function($post) {
return $post->get_id();
}, array_merge([$post], array_values($replies)));
if ($move == -1 and confirm_sesskey()) { if ($move == -1 and confirm_sesskey()) {
$forumname = format_string($forum->get_name(), true); $forumname = format_string($forum->get_name(), true);
@ -341,5 +338,12 @@ echo $discussionrenderer->render($USER, $post, $replies);
echo $OUTPUT->footer(); echo $OUTPUT->footer();
if ($istracked && !$CFG->forum_usermarksread) { if ($istracked && !$CFG->forum_usermarksread) {
if ($displaymode == FORUM_MODE_THREADED) {
forum_tp_add_read_record($USER->id, $post->get_id());
} else {
$postids = array_map(function($post) {
return $post->get_id();
}, array_merge([$post], array_values($replies)));
forum_tp_mark_posts_read($USER, $postids); forum_tp_mark_posts_read($USER, $postids);
}
} }