MDL-44403 events: added public method to get eventdata

This commit is contained in:
Marina Glancy 2014-02-28 16:11:15 +08:00
parent 76e4de31cc
commit 24c32bdf2f
10 changed files with 85 additions and 73 deletions

View File

@ -267,7 +267,7 @@ class blog_entry implements renderable {
'objectid' => $this->id,
'relateduserid' => $this->userid
));
$event->set_custom_data($this);
$event->set_blog_entry($this);
$event->trigger();
}
@ -309,7 +309,7 @@ class blog_entry implements renderable {
'objectid' => $entry->id,
'relateduserid' => $entry->userid
));
$event->set_custom_data($entry);
$event->set_blog_entry($entry);
$event->trigger();
}
@ -334,7 +334,7 @@ class blog_entry implements renderable {
'relateduserid' => $this->userid
));
$event->add_record_snapshot("post", $record);
$event->set_custom_data($this);
$event->set_blog_entry($this);
$event->trigger();
}

View File

@ -326,7 +326,6 @@ function groups_create_grouping($data, $editoroptions=null) {
'objectid' => $id
);
$event = \core\event\grouping_created::create($params);
$event->set_legacy_eventdata($data);
$event->trigger();
return $id;
@ -442,7 +441,6 @@ function groups_update_grouping($data, $editoroptions=null) {
'objectid' => $data->id
);
$event = \core\event\grouping_updated::create($params);
$event->set_legacy_eventdata($data);
$event->trigger();
return true;

View File

@ -124,12 +124,6 @@ class core_group_lib_testcase extends advanced_testcase {
$this->assertInstanceOf('\core\event\grouping_created', $event);
// 'Repairing' the object for comparison because of type of variables being wrong.
$group->id = (int) $group->id;
$group->timemodified = (int) $group->timemodified;
$group->timecreated = (int) $group->timecreated;
unset($group->idnumber);
unset($group->configdata);
$this->assertEventLegacyData($group, $event);
$this->assertSame('groups_grouping_created', $event->get_legacy_eventname());
@ -187,10 +181,16 @@ class core_group_lib_testcase extends advanced_testcase {
$this->assertInstanceOf('\core\event\grouping_updated', $event);
// 'Repairing' the object for comparison because of type of variables being wrong.
$data->id = (int) $grouping->id;
// Get the timemodified from DB for comparison with snapshot.
$data->timemodified = $DB->get_field('groupings', 'timemodified', array('id'=>$grouping->id));
$this->assertTimeCurrent($data->timemodified);
// Following fields were not updated so the snapshot should have them the same as in original group.
$data->description = $grouping->description;
$data->descriptionformat = $grouping->descriptionformat;
$data->configdata = $grouping->configdata;
$data->idnumber = $grouping->idnumber;
$data->timecreated = $grouping->timecreated;
// Assert legacy event data.
$this->assertEventLegacyData($data, $event);
$this->assertSame('groups_grouping_updated', $event->get_legacy_eventname());

View File

@ -37,8 +37,8 @@ defined('MOODLE_INTERNAL') || die();
*/
class blog_entry_created extends \core\event\base {
/** @var \blog_entry A reference to the active blog_entry object. */
protected $customobject;
/** @var \blog_entry A reference to the active blog_entry object. */
protected $blogentry;
/**
* Set basic properties for the event.
@ -51,12 +51,24 @@ class blog_entry_created extends \core\event\base {
}
/**
* Set custom data of the event.
* Set blog_entry object to be used by observers.
*
* @param \blog_entry $data A reference to the active blog_entry object.
*/
public function set_custom_data(\blog_entry $data) {
$this->customobject = $data;
public function set_blog_entry(\blog_entry $blogentry) {
$this->blogentry = $blogentry;
}
/**
* Returns created blog_entry object for event observers.
*
* @return \blog_entry
*/
public function get_blog_entry() {
if ($this->is_restored()) {
throw new \coding_exception('Function get_blog_entry() can not be used on restored events.');
}
return $this->blogentry;
}
/**
@ -100,7 +112,7 @@ class blog_entry_created extends \core\event\base {
* @return \blog_entry
*/
protected function get_legacy_eventdata() {
return $this->customobject;
return $this->blogentry;
}
/**
@ -110,6 +122,6 @@ class blog_entry_created extends \core\event\base {
*/
protected function get_legacy_logdata() {
return array (SITEID, 'blog', 'add', 'index.php?userid=' . $this->relateduserid . '&entryid=' . $this->objectid,
$this->customobject->subject);
$this->blogentry->subject);
}
}

View File

@ -37,7 +37,7 @@ defined('MOODLE_INTERNAL') || die();
class blog_entry_deleted extends \core\event\base {
/** @var \blog_entry A reference to the active blog_entry object. */
protected $customobject;
protected $blogentry;
/**
* Set basic event properties.
@ -59,12 +59,24 @@ class blog_entry_deleted extends \core\event\base {
}
/**
* Set custom data of the event.
* Sets blog_entry object to be used by observers.
*
* @param \blog_entry $data A reference to the active blog_entry object.
*/
public function set_custom_data(\blog_entry $data) {
$this->customobject = $data;
public function set_blog_entry(\blog_entry $blogentry) {
$this->blogentry = $blogentry;
}
/**
* Returns deleted blog entry for event observers.
*
* @return \blog_entry
*/
public function get_blog_entry() {
if ($this->is_restored()) {
throw new \coding_exception('Function get_blog_entry() can not be used on restored events.');
}
return $this->blogentry;
}
/**
@ -91,7 +103,7 @@ class blog_entry_deleted extends \core\event\base {
* @return \blog_entry
*/
protected function get_legacy_eventdata() {
return $this->customobject;
return $this->blogentry;
}
/**

View File

@ -36,7 +36,7 @@ defined('MOODLE_INTERNAL') || die();
class blog_entry_updated extends base {
/** @var \blog_entry A reference to the active blog_entry object. */
protected $customobject;
protected $blogentry;
/**
* Set basic event properties.
@ -49,12 +49,24 @@ class blog_entry_updated extends base {
}
/**
* Set custom data of the event.
* Sets blog_entry object to be used by observers.
*
* @param \blog_entry $data A reference to the active blog_entry object.
*/
public function set_custom_data(\blog_entry $data) {
$this->customobject = $data;
public function set_blog_entry(\blog_entry $blogentry) {
$this->blogentry = $blogentry;
}
/**
* Returns updated blog entry for event observers.
*
* @return \blog_entry
*/
public function get_blog_entry() {
if ($this->is_restored()) {
throw new \coding_exception('Function get_blog_entry() can not be used on restored events.');
}
return $this->blogentry;
}
/**
@ -89,7 +101,7 @@ class blog_entry_updated extends base {
* @return \blog_entry
*/
protected function get_legacy_eventdata() {
return $this->customobject;
return $this->blogentry;
}
/**
@ -108,7 +120,7 @@ class blog_entry_updated extends base {
*/
protected function get_legacy_logdata() {
return array(SITEID, 'blog', 'update', 'index.php?userid=' . $this->relateduserid . '&entryid=' . $this->objectid,
$this->customobject->subject);
$this->blogentry->subject);
}
}

View File

@ -84,12 +84,24 @@ class course_category_deleted extends base {
}
/**
* Set the legacy event data.
* Set custom data of the event - deleted coursecat.
*
* @param coursecat $class instance of the coursecat class
* @param \coursecat $coursecat
*/
public function set_legacy_eventdata($class) {
$this->coursecat = $class;
public function set_coursecat(\coursecat $coursecat) {
$this->coursecat = $coursecat;
}
/**
* Returns deleted coursecat for event observers.
*
* @return \coursecat
*/
public function get_coursecat() {
if ($this->is_restored()) {
throw new \coding_exception('Function get_coursecat() can not be used on restored events.');
}
return $this->coursecat;
}
/**

View File

@ -34,13 +34,6 @@ defined('MOODLE_INTERNAL') || die();
*/
class grouping_created extends \core\event\base {
/**
* Legacy data.
*
* @var mixed
*/
protected $legacydata;
/**
* Returns description of what happened.
*
@ -56,7 +49,7 @@ class grouping_created extends \core\event\base {
* @return stdClass
*/
protected function get_legacy_eventdata() {
return $this->legacydata;
return $this->get_record_snapshot('groupings', $this->objectid);
}
/**
@ -97,14 +90,4 @@ class grouping_created extends \core\event\base {
$this->data['objecttable'] = 'groupings';
}
/**
* Set legacy data.
*
* @param mixed $legacydata.
* @return void
*/
public function set_legacy_eventdata($legacydata) {
$this->legacydata = $legacydata;
}
}

View File

@ -34,13 +34,6 @@ defined('MOODLE_INTERNAL') || die();
*/
class grouping_updated extends \core\event\base {
/**
* Legacy data.
*
* @var mixed
*/
protected $legacydata;
/**
* Returns description of what happened.
*
@ -56,7 +49,7 @@ class grouping_updated extends \core\event\base {
* @return stdClass
*/
protected function get_legacy_eventdata() {
return $this->legacydata;
return $this->get_record_snapshot('groupings', $this->objectid);
}
/**
@ -97,14 +90,4 @@ class grouping_updated extends \core\event\base {
$this->data['objecttable'] = 'groupings';
}
/**
* Set legacy data.
*
* @param mixed $legacydata.
* @return void
*/
public function set_legacy_eventdata($legacydata) {
$this->legacydata = $legacydata;
}
}

View File

@ -1643,7 +1643,7 @@ class coursecat implements renderable, cacheable_object, IteratorAggregate {
'context' => $coursecatcontext,
'other' => array('name' => $this->name)
));
$event->set_legacy_eventdata($this);
$event->set_coursecat($this);
$event->trigger();
// If we deleted $CFG->defaultrequestcategory, make it point somewhere else.
@ -1798,7 +1798,7 @@ class coursecat implements renderable, cacheable_object, IteratorAggregate {
'context' => $context,
'other' => array('name' => $this->name)
));
$event->set_legacy_eventdata($this);
$event->set_coursecat($this);
$event->trigger();
cache_helper::purge_by_event('changesincoursecat');