This is the first check-in of support for groups.

It's very early (it doesn't actually do anything yet!) but you can
define groups and get an idea of how the interface is shaping up.
I also wanted to show that I have actually done something on this! :-)

From here my plan is to add group support to the modules, one by one
(forums first), then go back and clean up some of the central interfaces,
graphics etc.

Finally, test, test, test and get 1.2 out well before the end of February.
This commit is contained in:
moodler 2003-12-30 17:18:06 +00:00
parent ee39bbe0ee
commit f374fb1006
22 changed files with 1029 additions and 57 deletions

103
course/group.php Normal file
View file

@ -0,0 +1,103 @@
<?php // $Id$
/// Shows current group, and allows editing of the group
/// icon and other settings related to that group
require_once('../config.php');
require_once('lib.php');
require_variable($id); // Course id
optional_variable($group); // Optionally look at other groups
optional_variable($edit); // Turn editing on and off
if (! $course = get_record('course', 'id', $id) ) {
error("That's an invalid course id");
}
require_login($course->id);
if ($group and (isteacheredit($course->id) or $course->groupmode == VISIBLEGROUPS)) {
if (! $group = get_record("group", "id", $group)) {
error('Specified group could not be found!', "groups.php?id=$course->id");
}
} else if (! $group = get_current_group($course->id, 'full')) {
error('You are not currently in a group!', "view.php?id=$course->id");
}
if (isteacheredit($course->id) or (isteacher($course->id) and ismember($group->id) ) ) {
if (isset($edit)) {
if ($edit == "on") {
$USER->groupediting = true;
} else if ($edit == "off") {
$USER->groupediting = false;
}
}
} else {
$USER->groupediting = false;
}
/// Print the headers of the page
$strgroup = get_string('group');
$strgroups = get_string('groups');
$loggedinas = "<p class=\"logininfo\">".user_login_string($course, $USER)."</p>";
if (isteacheredit($course->id) or $course->groupmode == VISIBLEGROUPS) {
print_header("$strgroup : $group->name", "$course->fullname",
"<a href=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</a>
-> <a href=\"groups.php?id=$course->id\">$strgroups</a> -> $group->name",
"", "", true, update_group_button($course->id), $loggedinas);
} else {
print_header("$strgroup : $group->name", "$course->fullname",
"<a href=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</a>
-> $strgroup -> $group->name", "", "", true, "", $loggedinas);
}
/// Display the current group information
if ($USER->groupediting) { // Make an editing form for group information
print_heading($group->name);
echo '<div align="center">';
print_group_picture($group->id, $course->id, $group->picture, true, false, false);
echo '</div>';
print_simple_box($group->description, 'center', '50%');
} else { // Just display the information
print_heading($group->name);
echo '<div align="center">';
print_group_picture($group->id, $course->id, $group->picture, true, false, false);
echo '</div>';
print_simple_box($group->description, 'center', '50%');
}
echo '<br />';
if ($users = get_users_in_group($group->id)) {
$table->align = array('left', 'left');
$table->width = array('100', '*');
foreach ($users as $user) {
if (!$lastaccess = get_field("user_students", "timeaccess", "userid", $user->id, "course", $course->id)) {
if (!$lastaccess = get_field("user_teachers", "timeaccess", "userid", $user->id, "course", $course->id)) {
$datestring = get_string("never");
}
}
if ($lastaccess) {
$datestring = userdate($lastaccess)."&nbsp (".format_time(time() - $lastaccess).")";
}
$information = '<p><b>'.fullname($user).'</b></p>'.get_string("lastaccess").": $datestring";
$table->data[] = array(print_user_picture($user->id, $course->id, $user->picture, true, true), $information);
}
print_table($table);
} else {
print_heading(get_string('nousersyet'));
}
/// Finish off the page
print_footer($course);
?>