Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

Groups API

From MoodleDocs
Revision as of 01:21, 10 January 2012 by Adrian Greeve (talk | contribs)

Overview

The groups API is a core system in Moodle which allows for:

  • Creating and deleting of groups and groupings.
  • Adding and removing groups from a grouping.
  • Adding and removing members from a group.
  • Obtaining information regarding accessibility and permissions.

Creation and deletion methods

These methods are located in group/lib.php

  • Creating a group.
  • Deleting a group.
  • Creating a grouping.
  • Deleting a grouping.
  • Adding a group to a grouping.
  • Removing a group from a grouping.
  • Adding members to a group.
  • Removing members to a group.

Obtaining accessibility information

These methods are located in lib/grouplib.php

  • Getting activities allowed for a group.
  • Getting all groups.
  • Getting a group by a name.
  • Getting all groupings.
  • Getting the members of a grouping.
  • Checking to see if a group exists.
  • Checking to see if there are any users in a group.
  • Checking whether a user is part of a group.
  • Verifying an active group.

Database Structure

There are four core tables for Groups.

groupings

A grouping is a collection of groups.

Field Type Info
id int(10) auto increment identifier
courseid int(10) The course id
name varchar(255) Name of the grouping
description text Description of the grouping
descriptionformat int(2) The format of the description
configdata text Configuration data
timecreated int(10) The time that the grouping was created
timemodified into(10) The time last changes were made

groupings_groups

This table links a grouping to a group. There can be multiple groups in a grouping.

Field Type Info
id int(10) auto increment identifier
groupingid int(10) The grouping id
groupid int(10) The group id
timeadded int(10) Time that the group was added to the grouping

groups

Each record represents a group.

Field Type Info
id int(10) auto increment identifier
courseid int(10) The id of the course
name varchar(255) The name of the group
description text A description of the group
descriptionformat int(2) Format for the description
enrolmentkey varchar(50) The key used when self enrolling into a course. This will automatically put the student into a specific group.
picture int(10) picture for the group
hidepicture int(1) Whether the group picture is displayed or hidden
timecreated int(10) The time that the group was created
timemodified int(10) The last time that the group details were changed

groups_members

This table links a user to a group.

Field Type Info
id int(10) auto increment identifier
groupid int(10) The id of the group
userid int(10) The user's id
timeadded int(10) Time the group member was added