/** * Group updated * * @param \core\event\group_updated $event * @return void */ public static function group_updated(\core\event\group_updated $event) { global $DB; $group = $event->get_record_snapshot('groups', $event->objectid); $courseids = local_metagroups_parent_courses($group->courseid); foreach ($courseids as $courseid) { $course = get_course($courseid); if ($metagroup = $DB->get_record('groups', array('courseid' => $course->id, 'idnumber' => $group->id))) { $metagroup->name = $group->name; groups_update_group($metagroup, false, false); } } }
/** * Update group * * @param stdClass $data group properties (with magic quotes) * @param stdClass $editform * @param array $editoroptions * @return bool true or exception */ function groups_update_group($data, $editform = false, $editoroptions = false) { global $CFG, $DB; $context = context_course::instance($data->courseid); $data->timemodified = time(); if (isset($data->name)) { $data->name = trim($data->name); } if (isset($data->idnumber)) { $data->idnumber = trim($data->idnumber); if (($existing = groups_get_group_by_idnumber($data->courseid, $data->idnumber)) && $existing->id != $data->id) { throw new moodle_exception('idnumbertaken'); } } if ($editform and $editoroptions) { $data = file_postupdate_standard_editor($data, 'description', $editoroptions, $context, 'group', 'description', $data->id); } $DB->update_record('groups', $data); // Invalidate the group data. cache_helper::invalidate_by_definition('core', 'groupdata', array(), array($data->courseid)); $group = $DB->get_record('groups', array('id' => $data->id)); if ($editform) { groups_update_group_icon($group, $data, $editform); } // Trigger group event. $params = array('context' => $context, 'objectid' => $group->id); $event = \core\event\group_updated::create($params); $event->add_record_snapshot('groups', $group); $event->trigger(); return true; }