From: vyshane Date: Mon, 25 Sep 2006 08:50:00 +0000 (+0000) Subject: Abstracted query in a new function forum_discussions_user_has_posted_in() X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=dcd8e5890e29b0a65eb8e164cadb5cacab1f78a7;p=moodle.git Abstracted query in a new function forum_discussions_user_has_posted_in() --- diff --git a/mod/forum/lib.php b/mod/forum/lib.php index a0eff9ab5e..7900ba398b 100644 --- a/mod/forum/lib.php +++ b/mod/forum/lib.php @@ -1182,19 +1182,14 @@ function forum_get_readable_forums($userid, $courseid=0) { && !has_capability('mod/forum:viewqandawithoutposting', $forumcontext)) { // We need to check whether the user has posted in the qanda forum. - $haspostedsql = "SELECT DISTINCT(d.id) AS id, - d.name - FROM {$CFG->prefix}forum_posts AS p, - {$CFG->prefix}forum_discussions AS d - WHERE p.discussion = d.id - AND d.forum = {$forum->id} - AND p.userid = {$USER->id}"; - - $discussionspostedin = get_records_sql($haspostedsql); $forum->onlydiscussions = array(); // Holds discussion ids for the discussions // the user is allowed to see in this forum. - foreach ($discussionspostedin as $d) { - array_push($forum->onlydiscussions, $d->id); + + if ($discussionspostedin = + forum_discussions_user_has_posted_in($forum->id, $USER->id)) { + foreach ($discussionspostedin as $d) { + array_push($forum->onlydiscussions, $d->id); + } } } array_push($readableforums, $forum); @@ -2868,6 +2863,20 @@ function forum_user_has_posted_discussion($forumid, $userid) { } } +function forum_discussions_user_has_posted_in($forumid, $userid) { + global $CFG; + + $haspostedsql = "SELECT DISTINCT(d.id) AS id, + d.* + FROM {$CFG->prefix}forum_posts AS p, + {$CFG->prefix}forum_discussions AS d + WHERE p.discussion = d.id + AND d.forum = $forumid + AND p.userid = $userid"; + + return get_records_sql($haspostedsql); +} + function forum_user_has_posted($forumid, $did, $userid) { return record_exists('forum_posts','discussion',$did,'userid',$userid); }