MDL-39957 course: replaced the course_created legacy event

This commit is contained in:
Mark Nelson
2013-08-15 18:14:07 +08:00
parent 838d78a9ff
commit 3c2fab942b
3 changed files with 101 additions and 5 deletions
+10 -5
View File
@@ -2229,7 +2229,7 @@ function course_overviewfiles_options($course) {
* @return object new course instance
*/
function create_course($data, $editoroptions = NULL) {
global $CFG, $DB;
global $DB;
//check the categoryid - must be given for all new courses
$category = $DB->get_record('course_categories', array('id'=>$data->category), '*', MUST_EXIST);
@@ -2304,10 +2304,15 @@ function create_course($data, $editoroptions = NULL) {
// set up enrolments
enrol_course_updated(true, $course, $data);
add_to_log(SITEID, 'course', 'new', 'view.php?id='.$course->id, $data->fullname.' (ID '.$course->id.')');
// Trigger events
events_trigger('course_created', $course);
// Trigger a course created event.
$event = \core\event\course_created::create(array(
'objectid' => $course->id,
'context' => context_course::instance($course->id),
'other' => array('shortname' => $course->shortname,
'fullname' => $course->fullname)
));
$event->add_record_snapshot('course', $course);
$event->trigger();
return $course;
}
+1
View File
@@ -659,6 +659,7 @@ $string['errorcreatingactivity'] = 'Unable to create an instance of activity \'{
$string['errorfiletoobig'] = 'The file was bigger than the limit of {$a} bytes';
$string['errornouploadrepo'] = 'There is no upload repository enabled for this site';
$string['errorwhenconfirming'] = 'You are not confirmed yet because an error occurred. If you clicked on a link in an email to get here, make sure that the line in your email wasn\'t broken or wrapped. You may have to use cut and paste to reconstruct the link properly.';
$string['eventcoursecreated'] = 'Course created';
$string['everybody'] = 'Everybody';
$string['executeat'] = 'Execute at';
$string['existing'] = 'Existing';
+90
View File
@@ -0,0 +1,90 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
namespace core\event;
/**
* Course created event.
*
* @package core
* @copyright 2013 Mark Nelson <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class course_created extends base {
/**
* Initialise the event data.
*/
protected function init() {
$this->data['objecttable'] = 'course';
$this->data['crud'] = 'c';
$this->data['level'] = 50;
}
/**
* Returns localised general event name.
*
* @return string
*/
public static function get_name() {
return get_string('eventcoursecreated');
}
/**
* Returns non-localised description of what happened.
*
* @return string
*/
public function get_description() {
return "Course {$this->objectid} was created by user {$this->userid}";
}
/**
* Returns relevant URL.
*
* @return \moodle_url
*/
public function get_url() {
return new \moodle_url('/course/view.php', array('id' => $this->objectid));
}
/**
* Returns the name of the legacy event.
*
* @return string legacy event name
*/
public static function get_legacy_eventname() {
return 'course_created';
}
/**
* Returns the legacy event data.
*
* @return \stdClass the course that was created
*/
protected function get_legacy_eventdata() {
return $this->get_record_snapshot('course', $this->objectid);
}
/**
* Return legacy data for add_to_log().
*
* @return array
*/
protected function get_legacy_logdata() {
return array(SITEID, 'course', 'new', 'view.php?id=' . $this->objectid, $this->other['fullname'] . ' (ID ' . $this->objectid . ')');
}
}