]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-10383 - deprecated groups_members_from_sql and friends - we do not need them...
authorskodak <skodak>
Wed, 15 Aug 2007 19:28:11 +0000 (19:28 +0000)
committerskodak <skodak>
Wed, 15 Aug 2007 19:28:11 +0000 (19:28 +0000)
12 files changed:
blocks/online_users/block_online_users.php
blog/lib.php
group/lib/legacylib.php
lib/datalib.php
lib/deprecatedlib.php
mod/assignment/lib.php
mod/exercise/locallib.php
mod/forum/lib.php
mod/journal/lib.php
mod/quiz/report/analysis/report.php
mod/quiz/report/overview/report.php
mod/survey/lib.php

index a6c64071a01fc0dc6ba23a28af32225d15cc5fa5..2a52de9e5b7dd42cafcb4b208db7e829d8bdf450 100644 (file)
@@ -50,8 +50,8 @@ class block_online_users extends block_base {
 
         //Add this to the SQL to show only group users
         if ($currentgroup !== NULL) {
-            $groupmembers = ', '.groups_members_from_sql(); //TODO: ", {$CFG->prefix}groups_members gm ";
-            $groupselect = ' AND '.groups_members_where_sql($currentgroup, 'u.id'); //" AND u.id = gm.userid AND gm.groupid = '$currentgroup'";
+            $groupmembers = ",  {$CFG->prefix}groups_members gm ";
+            $groupselect = " AND u.id = gm.userid AND gm.groupid = '$currentgroup'";
         }
 
         if ($COURSE->id == SITEID) {  // Site-level
index 1bfc95f65d8a81f34f4ba072fc4beb071dfccdc6..53494cba161f42f5f35f9a9831ed16247e3acad1 100755 (executable)
             case 'group':
 
                 $SQL = 'SELECT '.$requiredfields.' FROM '.$CFG->prefix.'post p, '.$tagtablesql
-                        .groups_members_from_sql().', '.$CFG->prefix.'user u
-                        WHERE '.groups_members_where_sql($filterselect, 'p.userid').'
-                        AND u.id = p.userid
-                        AND u.deleted = 0
-                        '.$permissionsql.$typesql;
-
-                        /*'SELECT '.$requiredfields.' FROM '.$CFG->prefix.'post p, '.$tagtablesql
-                        .$CFG->prefix.'groups_members m, '.$CFG->prefix.'user u
-                        WHERE p.userid = m.userid '.$tagquerysql.'
-                        AND u.id = p.userid
-                        AND m.groupid = '.$filterselect.'
-                        AND u.deleted = 0
-                        AND '.$permissionsql.$typesql;
-                        '.$permissionsql;
-                        */
+                          .$CFG->prefix.'groups_members gm, '.$CFG->prefix.'user u
+                        WHERE p.userid =g m.userid AND u.id = p.userid
+                          AND gm.groupid = '.$filterselect.'
+                          AND u.deleted = 0
+                          '.$permissionsql.$typesql;
             break;
 
             case 'user':
index 388908fd160307f41c79456b72b8dd9d87ad60c4..db5dc02c66e19348eb3637f32a3ba02a74df4634 100644 (file)
  */
 
 
-/**
- * Returns the groupid of a group with the name specified for the course 
- * specified. If there's more than one with the name specified it returns the 
- * first one it finds it the database, so you need to be careful how you use it! 
- * This is needed to support upload of users into the database
- * @param int $courseid The id of the course
- * @param string $groupname
- * @return int $groupid
- */
-function groups_get_group_by_name($courseid, $groupname) {
-    //uploaduser.php, get_record("groups","courseid",$course[$i]->id,"name",$addgroup[$i])
-    $groupids = groups_db_get_groups($courseid);
-    if (! $groupids) {
-        return false;
-    }
-    foreach ($groupids as $id) {
-        if (groups_get_group_name($id) == $groupname) {
-            return $id;
-        }
-    }
-    return false;
-}
+
 
 /**
  * Returns an array of group objects that the user is a member of
@@ -53,7 +32,7 @@ function get_groups($courseid, $userid=0) {
     if ($userid) {
         $groupids = groups_get_groups_for_user($userid, $courseid);
     } else {
-        $groupids = groups_get_groups($courseid);
+        $groupids = array_keys(groups_get_all_groups($courseid));
     }
 
     return groups_groupids_to_groups($groupids, $courseid, $alldata=true);
@@ -362,45 +341,6 @@ function setup_and_print_groups($course, $groupmode, $urlroot) {
 }
 
 
-function oldgroups_print_user_group_info($currentgroup, $isseparategroups, $courseid) {
-    global $CFG;
-    $context = get_context_instance(CONTEXT_COURSE, $courseid);
-    
-    if ($currentgroup and (!$isseparategroups or has_capability('moodle/site:accessallgroups', $context))) {    /// Display info about the group
-        if ($group = get_record('groups', 'id', $currentgroup)) {              
-            if (!empty($group->description) or (!empty($group->picture) and empty($group->hidepicture))) { 
-                echo '<table class="groupinfobox"><tr><td class="left side picture">';
-                print_group_picture($group, $course->id, true, false, false);
-                echo '</td><td class="content">';
-                echo '<h3>'.$group->name;
-                if (has_capability('moodle/site:accessallgroups', $context)) {
-                    echo '&nbsp;<a title="'.get_string('editgroupprofile').'" href="../course/groups.php?id='.$course->id.'&amp;group='.$group->id.'">';
-                    echo '<img src="'.$CFG->pixpath.'/t/edit.gif" alt="" border="0">';
-                    echo '</a>';
-                }
-                echo '</h3>';
-                echo format_text($group->description);
-                echo '</td></tr></table>';
-            }
-        }
-    }
-}
-
-/**
- * Get the group object, including the course ID by default.
- * @param groupid ID of the group.
- * @param getcourse (default true), include the course ID in the return.
- * @return group object, optionally including 'courseid'.
- */
-function groups_get_group($groupid, $getcourse=true) {
-    $group = groups_db_get_group_settings($groupid);
-    if ($group && $getcourse) {
-        $group->courseid = groups_get_course($groupid);
-    }
-    return $group;
-}
-
-
 /**
  * Get an array of groups, as id => name.
  * Replaces, get_records_menu("groups", "courseid", $course->id, "name ASC", "id,name")
index 9113f094e3a4e0a62d411c3fb8631469a94bfc19..1d8f8eaaef341d62ab8d79246e51a4bfb97391e1 100644 (file)
@@ -160,8 +160,8 @@ function search_users($courseid, $groupid, $searchtext, $sort='', $exceptions=''
 //TODO:check. Remove group DB dependencies.
             return get_records_sql("SELECT u.id, u.firstname, u.lastname, u.email
                           FROM {$CFG->prefix}user u,
-                               ".groups_members_from_sql()."
-                          WHERE $select AND ".groups_members_where_sql($groupid, 'u.id')."
+                               {$CFG->prefix}groups_members gm
+                          WHERE $select AND gm.groupid = '$groupid' AND gm.userid = u.id
                               AND ($fullname $LIKE '%$searchtext%' OR u.email $LIKE '%$searchtext%')
                               $except $order");
         } else {
index 41bf6bb34636851cfdd8b775c1852fd404e17f4c..2cf14dde30d5d4f4492edff223d0b189518fce85 100644 (file)
@@ -1059,6 +1059,49 @@ function print_richedit_javascript($form, $name, $source='no') {
     use_html_editor($name);
 }
 
+/** various deprecated groups function **/
+
+
+/**
+ * Returns the table in which group members are stored, with a prefix 'gm'.
+ * @return SQL string.
+ */
+function groups_members_from_sql() {
+    global $CFG;
+    return " {$CFG->prefix}groups_members gm ";
+}
+
+/**
+ * Returns a join testing user.id against member's user ID.
+ * Relies on 'user' table being included as 'user u'.
+ * Used in Quiz module reports.
+ * @param group ID, optional to include a test for this in the SQL.
+ * @return SQL string.
+ */
+function groups_members_join_sql($groupid=false) {    
+    $sql = ' JOIN '.groups_members_from_sql().' ON u.id = gm.userid ';
+    if ($groupid) {
+        $sql = "AND gm.groupid = '$groupid' ";
+    }
+    return $sql;
+    //return ' INNER JOIN '.$CFG->prefix.'role_assignments ra ON u.id=ra.userid'.
+    //       ' INNER JOIN '.$CFG->prefix.'context c ON ra.contextid=c.id AND c.contextlevel='.CONTEXT_GROUP.' AND c.instanceid='.$groupid;
+}
+
+/**
+ * Returns SQL for a WHERE clause testing the group ID.
+ * Optionally test the member's ID against another table's user ID column. 
+ * @param groupid
+ * @param userid_sql Optional user ID column selector, example "mdl_user.id", or false.
+ * @return SQL string.
+ */
+function groups_members_where_sql($groupid, $userid_sql=false) {
+    $sql = " gm.groupid = '$groupid' ";
+    if ($userid_sql) {
+        $sql .= "AND $userid_sql = gm.userid ";
+    }
+    return $sql;
+}
 
 
 ?>
index 13b00745f9bd6731610479537900e5ded648fa52..e4b7c631867d48f8ae847ceab8bac2c1d8dd56b1 100644 (file)
@@ -2481,10 +2481,11 @@ function assignment_count_real_submissions($assignment, $groupid=0) {
     if ($groupid) {     /// How many in a particular group?
         return count_records_sql("SELECT COUNT(DISTINCT gm.userid, gm.groupid)
                                      FROM {$CFG->prefix}assignment_submissions a,
-                                          ".groups_members_from_sql()."
-                                    WHERE a.assignment = $assignment->id
+                                          {$CFG->prefix}groups_members g
+                                    WHERE a.assignment = $assignment->id 
                                       AND a.timemodified > 0
-                                      AND ".groups_members_where_sql($groupid, 'a.userid'));
+                                      AND g.groupid = '$groupid' 
+                                      AND a.userid = g.userid ");
     } else {
         $cm = get_coursemodule_from_instance('assignment', $assignment->id);
         $context = get_context_instance(CONTEXT_MODULE, $cm->id);
index a3e400cdf7feaa63f402932e1ae325ac2096d980..62f96cca47a152c20500799d019230c101932289 100644 (file)
@@ -546,9 +546,9 @@ function exercise_get_student_submissions($exercise, $order = "time", $groupid =
             }
 
             return get_records_sql("SELECT s.*, AVG(a.grade) AS grade FROM 
-                    ".groups_members_from_sql().", {$CFG->prefix}exercise_submissions s, 
+                    {$CFG->prefix}groups_members g, {$CFG->prefix}exercise_submissions s, 
                     {$CFG->prefix}exercise_assessments a
-                    WHERE $select ". groups_members_where_sql($groupid)."
+                    WHERE $select g.groupid = $groupid
                     AND s.exerciseid = $exercise->id
                     AND a.submissionid = s.id
                     GROUP BY s.id
@@ -570,8 +570,8 @@ function exercise_get_student_submissions($exercise, $order = "time", $groupid =
     }
 
         return get_records_sql("SELECT s.* FROM  {$CFG->prefix}user n, 
-                ".groups_members_from_sql().", {$CFG->prefix}exercise_submissions s
-                WHERE $select ". groups_members_where_sql()."
+                {$CFG->prefix}groups_members g, {$CFG->prefix}exercise_submissions s
+                WHERE $select g.groupid = $groupid
                 AND s.exerciseid = $exercise->id
                 ORDER BY $order");
 
@@ -853,8 +853,8 @@ function exercise_list_submissions_for_admin($exercise) {
             if ($groupid) {
                 $stats = get_record_sql("SELECT COUNT(*) as count, AVG(gradinggrade) AS mean, 
                         STDDEV(gradinggrade) AS stddev, MIN(gradinggrade) AS min, MAX(gradinggrade) AS max 
-                        FROM ".groups_members_from_sql().", {$CFG->prefix}exercise_assessments a 
-                        WHERE ".groups_members_where_sql($groupid, 'a.userid')." AND a.timegraded > 0 
+                        FROM {$CFG->prefix}groups_members g, {$CFG->prefix}exercise_assessments a 
+                        WHERE g.groupid = $groupid AND a.userid = g.userid AND a.timegraded > 0 
                         AND a.exerciseid = $exercise->id");
             } else { // no group/all participants
                 $stats = get_record_sql("SELECT COUNT(*) as count, AVG(gradinggrade) AS mean, 
@@ -970,9 +970,9 @@ function exercise_list_submissions_for_admin($exercise) {
             if ($groupid) {
                 $stats = get_record_sql("SELECT COUNT(*) as count, AVG(grade) AS mean, 
                         STDDEV(grade) AS stddev, MIN(grade) AS min, MAX(grade) AS max 
-                        FROM ".groups_members_from_sql().", {$CFG->prefix}exercise_assessments a, 
+                        FROM {$CFG->prefix}groups_members g, {$CFG->prefix}exercise_assessments a, 
                         {$CFG->prefix}exercise_submissions s
-                        WHERE ".groups_members_where_sql($groupid, 's.userid')." AND a.submissionid = s.id 
+                        WHERE g.groupid = $groupid AND s.userid = g.userid AND a.submissionid = s.id 
                         AND a.exerciseid = $exercise->id");
             } else { // no group/all participants
                 $stats = get_record_sql("SELECT COUNT(*) as count, AVG(grade) AS mean, 
index 51a7badd19c117293cd1224c25ef73fa578e1ec9..5f9dec26a5bf10faca03247d4b87a39650f77c14 100644 (file)
@@ -1885,8 +1885,9 @@ function forum_subscribed_users($course, $forum, $groupid=0, $cache=false) {
     }
 
     if ($groupid) {
-        $grouptables = ', '. groups_members_from_sql();
-        $groupselect = 'AND'.groups_members_where_sql($groupid, 'u.id');
+        $grouptables = ", {$CFG->prefix}groups_members gm ";
+        $groupselect = "AND gm.groupid = '$groupid' AND u.id = gm.userid";
+
     } else  {
         $grouptables = '';
         $groupselect = '';
index 4ff157c234b596a886ca7f885699e65393047e40..a542bd11a5db708e804142fe3ab2300d6208b8f6 100644 (file)
@@ -340,9 +340,10 @@ function journal_count_entries($journal, $groupid=0) {
     if ($groupid) {     /// How many in a particular group?
         return count_records_sql("SELECT COUNT(*) 
                                      FROM {$CFG->prefix}journal_entries j,
-                                          ".groups_members_from_sql()."
+                                          {$CFG->prefix}groups_members g
                                     WHERE j.journal = $journal->id 
-                                      AND ".groups_members_where_sql($groupid, 'j.userid'));
+                                      AND g.groupid = '$groupid' 
+                                      AND j.userid = g.userid");
 
     } else { /// Count all the entries from the whole course
     
index 0e9420dff9094837174ed17557195b76f1818d09..6c74d9e8efe847b5ac2846e07f9c40f2c76b61d3 100644 (file)
@@ -79,8 +79,8 @@ class quiz_report extends quiz_default_report {
 
         //Add this to the SQL to show only group users
         if ($currentgroup) {
-            $groupmembers = ', '.groups_members_from_sql();
-            $groupwhere = ' AND '.groups_members_where_sql($currentgroup, 'u.id');
+            $groupmembers = ", {$CFG->prefix}groups_members gm ";
+            $groupwhere = "AND gm.groupid = '$currentgroup' AND u.id = gm.userid";
         }
 
         $sql = 'SELECT  qa.* FROM '.$CFG->prefix.'quiz_attempts qa, '.$CFG->prefix.'user u '.$groupmembers.
index b391926be0b4ca1099b538e54a436c06b0a54574..039bc20ac558fec1e4ca3a554081bda50b567c3e 100644 (file)
@@ -294,16 +294,16 @@ class quiz_report extends quiz_default_report {
                 // we want a particular group and we only want to see students WITH attempts.
                 // So join on groups_members and do an inner join on attempts.
                 $from  = 'FROM '.$CFG->prefix.'user u JOIN '.$CFG->prefix.'role_assignments ra ON ra.userid = u.id '.
-                    groups_members_join_sql().
+                    'JOIN '.$CFG->prefix.'groups_members gm ON u.id = gm.userid '.
                     'JOIN '.$CFG->prefix.'quiz_attempts qa ON u.id = qa.userid AND qa.quiz = '.$quiz->id;
-                $where = ' WHERE ra.contextid ' . $contextlists . ' AND '. groups_members_where_sql($currentgroup) .' AND qa.preview = 0';
+                $where = ' WHERE ra.contextid ' . $contextlists . ' AND gm.groupid = '. $currentgroup .' AND qa.preview = 0';
             } else if (!empty($currentgroup) && !empty($noattempts)) {
                 // We want a particular group and we want to do something funky with attempts
                 // So join on groups_members and left join on attempts...
                 $from  = 'FROM '.$CFG->prefix.'user u JOIN '.$CFG->prefix.'role_assignments ra ON ra.userid = u.id '.
-                    groups_members_join_sql().
+                    'JOIN '.$CFG->prefix.'groups_members gm ON u.id = gm.userid '.
                     'LEFT JOIN '.$CFG->prefix.'quiz_attempts qa ON u.id = qa.userid AND qa.quiz = '.$quiz->id;
-                $where = ' WHERE ra.contextid ' .$contextlists . ' AND '.groups_members_where_sql($currentgroup);
+                $where = ' WHERE ra.contextid ' .$contextlists . ' AND gm.groupid = '.$currentgroup;
                 if ($noattempts == 1) {
                     // noattempts = 1 means only no attempts, so make the left join ask for only records where the right is null (no attempts)
                     $where .= ' AND qa.userid IS NULL'; // show ONLY no attempts;
index b7a491f0f493f0bd12999cd80197611ba97bf0db..01521bfd044afb8b9c62d3a904cd40074a68f073 100644 (file)
@@ -217,8 +217,9 @@ function survey_get_responses($surveyid, $groupid) {
     global $CFG;
 
     if ($groupid) {
-        $groupsdb = ', '. groups_members_from_sql();
-        $groupsql = 'AND'.groups_members_where_sql($groupid, 'u.id');
+        $groupsdb = ", {$CFG->prefix}groups_members gm ";
+        $groupsql = "AND gm.groupid = '$groupid' AND u.id = gm.userid";
+
     } else {
         $groupsdb = "";
         $groupsql = "";