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"; -echo '
'."\n"; -echo ''."\n"; -echo ''."\n"; -echo ''."\n"; - -if ($groupid) { - echo ''."\n"; -} - -if ($delete) { - /*echo 'Are you sure you want to delete group X ?'; - choose_from_menu_yesno('confirmdelete', false, '', true);*/ - - echo '

' . get_string('deletegroupconfirm', 'group', $strname) . '

'."\n"; - echo ''."\n"; - echo ''."\n"; - echo ''."\n"; -} else { - echo '
'."\n"; - echo '

'."\n"; - echo '

'."\n"; - echo '
'."\n"; - - echo '

'."\n"; - echo '

' . print_textarea($usehtmleditor, 5, 45, 200, 400, 'description', $strdesc, 0, true) . '

'."\n"; - - echo '

'."\n"; - echo '

'."\n"; - - if ($printuploadpicture) { - echo '

'."\n"; - echo '

'; - $options = array(); - $options[0] = get_string('no'); - $options[1] = get_string('yes'); - choose_from_menu($options, 'hidepicture', isset($group)? $group->hidepicture: 1, ''); - echo '

'."\n"; - - echo '

'."\n"; - echo '

' . upload_print_form_fragment(1, array('imagefile'), null,false,null,0,0,true) . '

'."\n"; - } - - if ($groupid) { //OK, editing - option to move grouping. - - echo '

'."\n"; - echo ''."\n"; - } //IF($groupid) - - echo '

'."\n"; - echo ''."\n"; - echo ''."\n"; - echo ''."\n"; - echo ''."\n"; - echo ''."\n"; - echo '

'."\n"; - -} //IF($delete) - -echo ' '."\n"; -echo '
'; -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() {