private static function get_base($where, $whereparams, $userid, $cache, $cloneid) { // If user isn't logged in, don't get unread data if (!isloggedin()) { $userid = -1; } // Get discussion data (including read status) $rs = self::query_discussions($where, $whereparams, $userid, 'id', 0, 1); $discussionfields = false; if (!$rs->valid()) { throw new dml_exception('Unable to retrieve relevant discussion'); } $discussionfields = $rs->current(); $rs->close(); // Get forum and construct discussion $forum = mod_forumng::get_from_id($discussionfields->forumngid, $cloneid); $result = new mod_forumng_discussion($forum, $discussionfields, true, mod_forumng_utils::get_real_userid($userid)); if ($cache) { $result->cache($userid); } return $result; }