public static function create($userid, $courseid, $time = false) { global $DB; $transaction = $DB->start_delegated_transaction(); $message = new self(); $message->course = self::fetch_course($courseid); $message->users[$userid] = self::fetch_user($userid); $record = new stdClass(); $record->courseid = $message->course->id; $record->subject = $message->subject = ''; $record->content = $message->content = ''; $record->format = $message->format = -1; $record->draft = $message->draft = true; $record->time = $message->time = $time ?: time(); $message->id = $DB->insert_record('local_mail_messages', $record); $record = new stdClass(); $record->messageid = $message->id; $record->userid = $userid; $record->role = $message->role[$userid] = 'from'; $record->unread = $message->unread[$userid] = false; $record->starred = $message->starred[$userid] = false; $record->deleted = $message->deleted[$userid] = false; $DB->insert_record('local_mail_message_users', $record); $message->create_index($userid, 'drafts'); $message->create_index($userid, 'course', $courseid); $message->create_index($userid, 'attachment', false); $transaction->allow_commit(); return $message; }