示例#1
0
         $userorgroupchanged = $fromform->userid !== $override->userid;
     } else {
         $userorgroupchanged = $fromform->groupid !== $override->groupid;
     }
 }
 if ($userorgroupchanged) {
     $conditions = array('assignid' => $assign->get_context()->id, 'userid' => empty($fromform->userid) ? null : $fromform->userid, 'groupid' => empty($fromform->groupid) ? null : $fromform->groupid);
     if ($oldoverride = $DB->get_record('assign_overrides', $conditions)) {
         // There is an old override, so we merge any new settings on top of
         // the older override.
         foreach ($keys as $key) {
             if (is_null($fromform->{$key})) {
                 $fromform->{$key} = $oldoverride->{$key};
             }
         }
         $assign->delete_override($oldoverride->id);
     }
 }
 // Set the common parameters for one of the events we may be triggering.
 $params = array('context' => $context, 'other' => array('assignid' => $assign->get_context()->id));
 if (!empty($override->id)) {
     $fromform->id = $override->id;
     $DB->update_record('assign_overrides', $fromform);
     // Determine which override updated event to fire.
     $params['objectid'] = $override->id;
     if (!$groupmode) {
         $params['relateduserid'] = $fromform->userid;
         $event = \mod_assign\event\user_override_updated::create($params);
     } else {
         $params['other']['groupid'] = $fromform->groupid;
         $event = \mod_assign\event\group_override_updated::create($params);