diff --git a/group/edit.php b/group/edit.php
index 83d0a97fd81..110c81e05f8 100755
--- a/group/edit.php
+++ b/group/edit.php
@@ -16,33 +16,34 @@ require_once('lib.php');
require_once('edit_form.php');
/// get url variables
-$id = required_param('id', PARAM_INT);
-$groupingid = optional_param('grouping', false, PARAM_INT);
-$newgrouping= optional_param('newgrouping', false, PARAM_INT);
-$groupid = optional_param('group', false, PARAM_INT);
+$id = optional_param('id', false, PARAM_INT);
+$groupingid = optional_param('grouping', false, PARAM_INT);
+$newgrouping = optional_param('newgrouping', false, PARAM_INT);
+$courseid = required_param('courseid', PARAM_INT);
$delete = optional_param('delete', false, PARAM_BOOL);
/// Course must be valid
-if (!$course = get_record('course', 'id', $id)) {
+if (!$course = get_record('course', 'id', $courseid)) {
error('Course ID was incorrect');
}
/// Delete action should not be called without a group id
-if ($delete && !$groupid) {
+if ($delete && !$id) {
error(get_string('errorinvalidgroup'));
}
/// basic access control checks
-if ($groupid) {
- if (!$group = get_record('groups', 'id', $groupid)) {
+if ($id) {
+ if (!$group = get_record('groups', 'id', $id)) {
error('Group ID was incorrect');
}
- require_capability('moodle/course:managegroups', get_context_instance(CONTEXT_COURSE), $course->id);
+ $context = get_context_instance(CONTEXT_COURSE, $course->id);
+ require_capability('moodle/course:managegroups', $context);
}
/// First create the form
-$editform = new group_edit_form('group.php', compact('group'));
+$editform = new group_edit_form('edit.php', compact('group', 'groupingid', 'newgrouping', 'group', 'courseid'));
/// Override defaults if group is set
if (!empty($group)) {
@@ -50,13 +51,13 @@ if (!empty($group)) {
}
if ($editform->is_cancelled()) {
- redirect(groups_home_url($courseid, $groupid, $groupingid, false));
+ redirect(groups_home_url($courseid, $id, $groupingid, false));
} elseif ($data = $editform->get_data()) {
$success = true;
-
+
// preprocess data
if ($delete) {
- if ($success = groups_delete_group($groupid)) {
+ if ($success = groups_delete_group($id)) {
redirect(groups_home_url($course->id, null, $groupingid, false));
} else {
print_error('erroreditgroup', 'group', groups_home_url($course->id));
@@ -65,11 +66,11 @@ if ($editform->is_cancelled()) {
if (!$group = groups_create_group($course->id)) {
print_error('erroreditgroup');
} else {
- $success = (bool)$groupid = groups_create_group($course->id);
+ $success = (bool)$id = groups_create_group($course->id);
}
} elseif ($groupingid != $newgrouping) { // Moving group to new grouping
if ($groupingid != GROUP_NOT_IN_GROUPING) {
- $success = $success && groups_remove_group_from_grouping($groupid, $groupingid);
+ $success = $success && groups_remove_group_from_grouping($id, $groupingid);
}
} else { // Updating group
if (!groups_update_group($data, $course->id)) {
@@ -79,189 +80,40 @@ if ($editform->is_cancelled()) {
// Handle file upload
if ($success) {
- $um = new upload_manager('imagefile',false,false,$course=null,false,$modbytes=0,$silent=false,$allownull=true);
- if ($um->preprocess_files()) {
- require_once("$CFG->libdir/gdlib.php");
-
- if (save_profile_image($groupid, $um, 'groups')) {
- $groupsettings->picture = 1;
- }
+ if ($editform->save_files()) {
} else {
$success = false;
}
}
- $success = $success && groups_set_group_settings($groupid, $groupsettings);
+ $success = $success && groups_set_group_settings($id, $groupsettings);
if ($success) {
- redirect(groups_home_url($course->id, $groupid, $groupingid, false));
+ redirect(groups_home_url($course->id, $id, $groupingid, false));
} else {
print_error('erroreditgroup', 'group', groups_home_url($course->id));
}
} else { // Prepare and output form
$strgroups = get_string('groups');
+ $strparticipants = get_string('participants');
- if ($groupid) {
+ if ($id) {
$strheading = get_string('editgroupsettings', 'group');
} else {
$strheading = get_string('creategroup', 'group');
}
-
print_header("$course->shortname: ". $strheading,
$course->fullname,
"wwwroot/course/view.php?id=$courseid\">$course->shortname ".
"-> wwwroot/user/index.php?id=$courseid\">$strparticipants ".
"-> $strgroups", '', '', true, '', user_login_string($course, $USER));
+
+ print_heading($strheading);
+ echo '
';
+ if ($id) {
+ print_group_picture($group, $course->id);
+ }
+ echo '
';
$editform->display();
print_footer($course);
}
-
-/// OR, prepare the form.
-
-if ($groupid) {
- // Form to edit existing group.
- $group = groups_get_group_settings($groupid);
- if (! $group) {
- print_error('errorinvalidgroup', 'group', groups_home_url($courseid));
- }
- $strname = s($group->name);
- $strdesc = s($group->description);
-
- $strbutton = get_string('save', 'group');
- $strheading = get_string('editgroupsettings', 'group');
-} else {
- // Form to create a new one.
- $strname = get_string('defaultgroupname', 'group');
- $strdesc = '';
- $strbutton = $strheading = get_string('creategroup', 'group');
-}
-$strgroups = get_string('groups');
-$strparticipants = get_string('participants');
-if ($delete) {
- $strheading = get_string('deleteselectedgroup', 'group');
-} //else { $strheader = get_string('groupinfoedit'); }
-
-$maxbytes = get_max_upload_file_size($CFG->maxbytes, $course->maxbytes);
-if (!empty($CFG->gdversion) and $maxbytes) {
- $printuploadpicture = true;
-} else {
- $printuploadpicture = false;
-}
-
-/// Print the page and form
-
-print_header("$course->shortname: ". $strheading,
- $course->fullname,
- "wwwroot/course/view.php?id=$courseid\">$course->shortname ".
- "-> wwwroot/user/index.php?id=$courseid\">$strparticipants ".
- "-> $strgroups", '', '', true, '', user_login_string($course, $USER));
-
-$usehtmleditor = false;
-
-echo '' . $strheading . '
'."\n";
-
-echo ''."\n";
-
-print_footer($course);
-
?>
diff --git a/group/edit_form.php b/group/edit_form.php
index c9bbe7c7948..aa14915f4c1 100644
--- a/group/edit_form.php
+++ b/group/edit_form.php
@@ -2,6 +2,7 @@
require_once($CFG->dirroot.'/lib/formslib.php');
+/// get url variables
class group_edit_form extends moodleform {
// Define the form
@@ -9,115 +10,35 @@ class group_edit_form extends moodleform {
global $USER, $CFG, $COURSE;
$strrequired = get_string('required');
-
+ $buttonstr = get_string('creategroup', 'group');
$group = $this->_customdata['group'];
$groupingid = $this->_customdata['groupingid'];
$newgrouping = $this->_customdata['newgrouping'];
-
+ $courseid = $this->_customdata['courseid'];
+
+ $id = $group->id;
$mform =& $this->_form;
-
- $mform->addElement('text','name', get_string('name'),'maxlength="254" size="50"');
- $mform->setDefault('name', get_string('defaultgroupname'));
+
+ $mform->addElement('text','name', get_string('groupname', 'group'),'maxlength="254" size="50"');
+ $mform->setDefault('name', get_string('defaultgroupname', 'group'));
$mform->addRule('name', get_string('missingname'), 'required', null, 'client');
$mform->setType('name', PARAM_MULTILANG);
- $mform->addElement('htmleditor', 'description', get_string('description'), array('rows'=> '5', 'cols'=>'45'));
+ $mform->addElement('htmleditor', 'description', get_string('groupdescription', 'group'), array('rows'=> '5', 'cols'=>'45'));
$mform->setType('description', PARAM_RAW);
- $mform->addElement('text', 'enrolmentkey', get_string('enrolmentkey', 'group'), 'maxlength="254" size="40"', get_string('enrolmentkey'));
+ $mform->addElement('text', 'enrolmentkey', get_string('enrolmentkey', 'group'), 'maxlength="254" size="24"', get_string('enrolmentkey'));
$mform->setHelpButton('enrolmentkey', array('groupenrolmentkey', get_string('enrolmentkey', 'group')), true);
$mform->setType('enrolmentkey', PARAM_RAW);
$options = array(get_string('no'), get_string('yes'));
$mform->addElement('select', 'hidepicture', get_string('hidepicture'), $options);
-
- $maxbytes = get_max_upload_file_size($CFG->maxbytes, $COURSE->maxbytes);
- if (!empty($CFG->gdversion) and $maxbytes and !empty($CFG->disableuserimages)) {
- $mform->addElement('file', 'imagefile', get_string('newpicture', 'group'));
- $mform->setHelpButton('imagefile', array('picture', get_string('helppicture')), true);
- }
-
- /// Add some extra hidden fields
- if ($group) {
- $mform->addElement('hidden', 'group', $group->id);
- }
-
- if ($groupingid) {
- $mform->addElement('hidden', 'groupingid', s($groupingid));
- } else {
-
- }
-
- $mform->addElement('hidden', 'group');
- $mform->addElement('hidden', 'course', $COURSE->id);
-
- $this->set_upload_manager(new upload_manager('imagefile', false, false, null, false, 0, true, true, false));
-
- $this->add_action_buttons(false, get_string('updatemyprofile'));
+ $this->add_action_buttons(true, $buttonstr);
+ $mform->addElement('hidden', 'courseid', $courseid);
}
function definition_after_data() {
global $USER, $CFG;
-
- $mform =& $this->_form;
- $userid = $mform->getElementValue('id');
-
- if ($user = get_record('user', 'id', $userid)) {
-
- // print picture
- if (!empty($CFG->gdversion)) {
- $image_el = $mform->getElement('currentpicture');
- if ($user and $user->picture) {
- $image_el->setValue(print_user_picture($user->id, SITEID, $user->picture, 64,true,false,'',true));
- } else {
- $image_el->setValue(get_string('none'));
- }
- }
-
- /// disable fields that are locked by auth plugins
- $fields = get_user_fieldnames();
- $freezefields = array();
- $authplugin = get_auth_plugin($user->auth);
- foreach ($fields as $field) {
- if (!$mform->elementExists($field)) {
- continue;
- }
- $configvariable = 'field_lock_' . $field;
- if (isset($authplugin->config->{$configvariable})) {
- if ($authplugin->config->{$configvariable} === 'locked') {
- $freezefields[] = $field;
- } else if ($authplugin->config->{$configvariable} === 'unlockedifempty' and $user->$field != '') {
- $freezefields[] = $field;
- }
- }
- }
- $mform->hardFreeze($freezefields);
- }
- }
-
- function validation ($usernew) {
- global $CFG;
-
- $usernew = (object)$usernew;
- $user = get_record('user', 'id', $usernew->id);
- $err = array();
-
- // validate email
- if (!validate_email($usernew->email)) {
- $err['email'] = get_string('invalidemail');
- } else if (($usernew->email !== $user->email) and record_exists('user', 'email', $usernew->email, 'mnethostid', $CFG->mnet_localhost_id)) {
- $err['email'] = get_string('emailexists');
- }
-
- if ($usernew->email === $user->email and over_bounce_threshold($user)) {
- $err['email'] = get_string('toomanybounces');
- }
-
- if (count($err) == 0){
- return true;
- } else {
- return $err;
- }
}
function get_um() {