예제 #1
0
 function test_create_grouping()
 {
     $this->assertTrue($this->groupingid = groups_create_grouping($this->courseid));
     $this->assertTrue(groups_grouping_exists($this->groupingid));
     $this->assertTrue(groups_grouping_belongs_to_course($this->groupingid, $this->courseid));
     $this->assertTrue($groupinginfo = groups_set_default_grouping_settings());
     $groupinginfo->name = 'Grouping ' . $this->getLabel();
     $this->assertTrue(groups_set_grouping_settings($this->groupingid, $groupinginfo));
 }
예제 #2
0
/**
 * Marks a set of groups as a grouping. 
 * 
 * @param array $groupidarray An array of the ids of the groups to marks as a
 * grouping. 
 * @param int $courseid The id of the course for which the groups should form
 * a grouping
 * @return int | false The id of the grouping, or false if an error occurred. 
 * Also returns false if any of the groups specified do not belong to the 
 * course. 
 */
function groups_db_create_grouping($courseid, $groupingsettings = false)
{
    if (!$courseid or !groups_get_course_info($courseid)) {
        $groupingid = false;
    } else {
        // Replace any empty groupsettings
        $groupingsettings = groups_set_default_grouping_settings($groupingsettings);
        $record = $groupingsettings;
        $record->timecreated = time();
        $groupingid = insert_record('groups_groupings', $record);
        if ($groupingid != false) {
            $record2 = new Object();
            $record2->courseid = $courseid;
            $record2->groupingid = $groupingid;
            $record2->timeadded = time();
            $id = insert_record('groups_courses_groupings', $record2);
            if (!$id) {
                $groupingid = false;
            }
        }
    }
    return $groupingid;
}