<?php
-/*******************************************************************************
+/**
* Functions to make changes to groups in the database i.e. functions that
- * access the groups_courses_groups,
- * groups_groups and groups_groups_users.
- ******************************************************************************/
-
+ * access tables:
+ * groups_courses_groups, groups_groups and groups_groups_users.
+ *
+ * @copyright © 2006 The Open University
+ * @author J.White AT open.ac.uk
+ * @license http://www.gnu.org/copyleft/gpl.html GNU Public License
+ * @package groups
+ */
require_once($CFG->libdir.'/datalib.php');
require_once($CFG->dirroot.'/group/lib/lib.php');
function groups_db_get_user($userid) {
$query = get_record('user', 'id', $userid);
return $query;
-
}
}
}
}
-
+
return $groupids;
}
WHERE id = $groupid";
$groupsettings = get_record_sql($sql);
}
-
+
return $groupsettings;
}
"INNER JOIN {$tableprefix}groups_members AS gm2 " .
"ON gm1.groupid =gm2.groupid" .
"WHERE gm1.userid = $userid1 AND gm2.userid = $userid2";
- $commonggroups = get_record_sql($sql);
+ $commongroups = get_record_sql($sql);
if ($commongroups) {
$havecommongroup = true;
}
-
+
return $havecommongroup;
}
} else {
$exists = record_exists($table = 'groups_groups', 'id', $groupid);
}
-
+
return $exists;
}
'groupid', $groupid,
'courseid', $courseid);
}
-
+
return $ismember;
}
$record = $groupsettings;
$record->timecreated = time();
$record->timemodified = time();
- print_r($record);
+ //print_r($record);
$groupid = insert_record('groups_groups', $record);
-
if ($groupid != false) {
+ $record2 = new Object();
$record2->courseid = $courseid;
$record2->groupid = $groupid;
$record2->timeadded = time();
$useradded = true;
} else {
// Add the user to the group
+ $record = new Object();
$record->groupid = $groupid;
$record->userid = $userid;
$record->timeadded = time();
$useradded = insert_record($table = 'groups_groups_users', $record);
}
-
+
return $useradded;
}
$success = false;
}
}
-
+
return $success;
}
$success = true;
}
}
-
+
return $success;
}
}
}
}
-
- // Remove any groupings that the group belongs to
- $groupingids = groups_get_groupings_for_group($groupid);
- if ($groupingids != false) {
- foreach($groupingids as $groupingid) {
- $groupremoved = groups_remove_group_from_grouping($groupid,
- $groupingid);
- if(!$groupremoved) {
+
+ // Remove any groupings that the group belongs to
+ $groupingids = groups_get_groupings_for_group($groupid);
+ if ($groupingids != false) {
+ foreach($groupingids as $groupingid) {
+ $groupremoved = groups_remove_group_from_grouping($groupid,
+ $groupingid);
+ if(!$groupremoved) {
$success = false;
- }
- }
- }
-
+ }
+ }
+ }
+
$results = delete_records('groups_courses_groups', 'groupid', $groupid);
if ($results == false) {
$success = false;
}
-
+
// Delete the group itself
$results = delete_records($table = 'groups_groups', $field1 = 'id',
$value1 = $groupid);
$success = false;
}
}
-
+
return $success;
}
+
?>
\ No newline at end of file
<?php
-/*******************************************************************************
+/**
* Functions to make changes to groupings in the database. In general these
- * access the groups_groupings, groups_courses_groupings and
- * groups_groupings_groups tables, although some all access the groups
- * tables that store information about groups.
- ******************************************************************************/
-
+ * access the tables:
+ * groups_groupings, groups_courses_groupings and groups_groupings_groups
+ * although some access all the tables that store information about groups.
+ *
+ * @copyright © 2006 The Open University
+ * @author J.White AT open.ac.uk
+ * @license http://www.gnu.org/copyleft/gpl.html GNU Public License
+ * @package groups
+ */
require_once($CFG->libdir.'/datalib.php');
/*******************************************************************************
$groupingid = insert_record('groups_groupings', $record);
if ($groupingid != false) {
+ $record2 = new Object();
$record2->courseid = $courseid;
$record2->groupingid = $groupingid;
$record2->timeadded = time();
$success = false;
} else {
$success = true;
+ $record = new Object();
$record->groupingid = $groupingid;
$record->groupid = $groupid;
$record->timeadded = time();
+
$results = insert_record('groups_groupings_groups', $record);
if (!$results) {
$success = false;
if (!$groupingid or !$coursemoduleid) {
$success = false;
} else {
+ $record = new Object();
$record->id = $coursemoduleid;
$record->groupingid = $groupingid;
$result = update_record('course_modules', $record);
$success = false;
}
- $results = delete_records('groups_groupings', 'id', $groupingid);
+ $results = delete_records('groups_groupings', 'id', $groupingid);
if ($results == false) {
$success = false;
}
}
-
+
return $success;
}
*
* @copyright © 2006 The Open University
* @author J.White AT open.ac.uk
- * @author N.D.Freear@open.ac.uk
+ * @author N.D.Freear@open.ac.uk
* @license http://www.gnu.org/copyleft/gpl.html GNU Public License
* @package groups
*/
// Only copy the group if the group exists.
if ($groupsettings != false) {
+ $record = new Object();
$record->name = $groupsettings->name;
$record->description = $groupsettings->description;
$record->password = $groupsettings->password;
$record->hidepicture = $groupsettings->hidepicture;
$record->timecreated = $groupsettings->timecreated;
$record->timemodified = $groupsettings->timemodified;
+
$newgroupid = insert_record('groups_groups', $record);
if (!$newgroupid) {
$success = false;
}
-
+
+ $courserecord = new Object();
$courserecord->courseid = $groupsettings->courseid;
$courserecord->groupid = $newgroupid;
$added = insert_record('groups_courses_groups', $courserecord);
-
- if (!$added) {
- $success = false;
- }
-
- // Copy over the group members
+
+ if (!$added) {
+ $success = false;
+ }
+
+ // Copy over the group members
$groupmembers = get_records('groups_users', 'groupid', $groupid);
if ($groupmembers != false) {
foreach($groupmembers as $member) {
- $record->groupid = $newgroupid;
+ $record = new Object();
+ $record->groupid = $newgroupid;
$record->userid = $member->userid;
$useradded = insert_record('groups_groups_users', $record);
if (!$useradded) {
}
}
}
+ }
- }
-
if (!$success) {
notify('Copy operations from Moodle groups to IMS Groups failed');
}
-
+
return $success;
}
<?php
-
+/**
+ * Functions required for setting up the database to use the new groups.
+ *
+ * @copyright © 2006 The Open University
+ * @author J.White AT open.ac.uk
+ * @author N.D.Freear@open.ac.uk
+ * @license http://www.gnu.org/copyleft/gpl.html GNU Public License
+ * @package groups
+ */
require_once('../config.php');
require_once($CFG->dirroot.'/group/db/dbsetup.php');
require_once($CFG->dirroot.'/group/lib/utillib.php');
* @return int The id of the grouping to which the groups have been copied, or false if an error occurred.
*/
function groups_copy_moodle_groups_to_groups($courseid) {
+ $groupingsettings = new Object();
$groupingsettings->name = 'Old moodle groups';
$groupingid = groups_create_grouping($courseid, $groupingsettings);