/** * Marks a whole discussion as read, for a given user * * @global object * @global object * @param object $user * @param int $discussionid * @return bool */ function forum_tp_mark_discussion_read($user, $discussionid) { global $CFG, $DB; $cutoffdate = time() - ($CFG->forum_oldpostdays*24*60*60); $sql = "SELECT p.id FROM {forum_posts} p LEFT JOIN {forum_read} r ON (r.postid = p.id AND r.userid = ?) WHERE p.discussion = ? AND p.modified >= ? AND r.id is NULL"; if ($posts = $DB->get_records_sql($sql, array($user->id, $discussionid, $cutoffdate))) { $postids = array_keys($posts); return forum_tp_mark_posts_read($user, $postids); } return true; }
/** * Marks a whole discussion as read, for a given user */ function forum_tp_mark_discussion_read($user, $discussionid) { global $CFG; $cutoffdate = time() - $CFG->forum_oldpostdays * 24 * 60 * 60; $sql = "SELECT p.id\n FROM {$CFG->prefix}forum_posts p\n LEFT JOIN {$CFG->prefix}forum_read r ON (r.postid = p.id AND r.userid = {$user->id})\n WHERE p.discussion = {$discussionid}\n AND p.modified >= {$cutoffdate} AND r.id is NULL"; if ($posts = get_records_sql($sql)) { $postids = array_keys($posts); return forum_tp_mark_posts_read($user, $postids); } return true; }