]> git.mjollnir.org Git - moodle.git/commitdiff
Abstracted query in a new function forum_discussions_user_has_posted_in()
authorvyshane <vyshane>
Mon, 25 Sep 2006 08:50:00 +0000 (08:50 +0000)
committervyshane <vyshane>
Mon, 25 Sep 2006 08:50:00 +0000 (08:50 +0000)
mod/forum/lib.php

index a0eff9ab5e91afc0815e1774547edc6523991be8..7900ba398bbbdc1f8089e694a0b23e8830bc2056 100644 (file)
@@ -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);
 }