本文整理汇总了PHP中core\event\base类的典型用法代码示例。如果您正苦于以下问题:PHP base类的具体用法?PHP base怎么用?PHP base使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了base类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: observer
/**
* Observe the events, and dispatch them if necessary.
*
* @param \core\event\base $event The event.
* @return void
*/
public static function observer(\core\event\base $event)
{
if ($event->component === 'block_xp') {
// Skip own events.
} else {
if (!$event->userid || isguestuser($event->userid) || is_siteadmin($event->userid)) {
// Skip non-logged in users and guests.
} else {
if ($event->contextlevel !== CONTEXT_COURSE && $event->contextlevel !== CONTEXT_MODULE) {
// Ignore events outside a course.
} else {
if ($event->edulevel !== \core\event\base::LEVEL_PARTICIPATING) {
// Ignore events that are not participating.
} else {
if (!has_capability('block/xp:earnxp', $event->get_context(), $event->userid)) {
// Skip the events if the user does not have the capability to earn XP, or if it is the admin.
} else {
// Keep the event, and proceed.
$manager = block_xp_manager::get($event->courseid);
$manager->capture_event($event);
}
}
}
}
}
}
示例2: dispatch
/**
* Trigger new event.
*
* @internal to be used only from \core\event\base::trigger() method.
* @param \core\event\base $event
*
* @throws \coding_Exception if used directly.
*/
public static function dispatch(\core\event\base $event)
{
if (during_initial_install()) {
return;
}
if (!$event->is_triggered() or $event->is_dispatched()) {
throw new \coding_exception('Illegal event dispatching attempted.');
}
self::$buffer[] = $event;
if (self::$dispatching) {
return;
}
self::$dispatching = true;
self::process_buffers();
self::$dispatching = false;
}
示例3: get_events_select
public function get_events_select($selectwhere, array $params, $sort, $limitfrom, $limitnum)
{
global $DB;
$sort = self::tweak_sort_by_id($sort);
$events = array();
$records = $DB->get_records_select('logstore_standard_log', $selectwhere, $params, $sort, '*', $limitfrom, $limitnum);
foreach ($records as $data) {
$extra = array('origin' => $data->origin, 'ip' => $data->ip, 'realuserid' => $data->realuserid);
$data = (array) $data;
$id = $data['id'];
$data['other'] = unserialize($data['other']);
if ($data['other'] === false) {
$data['other'] = array();
}
unset($data['origin']);
unset($data['ip']);
unset($data['realuserid']);
unset($data['id']);
$event = \core\event\base::restore($data, $extra);
// Add event to list if it's valid.
if ($event) {
$events[$id] = $event;
}
}
return $events;
}
示例4: observer
/**
* Observe the events, and dispatch them if necessary.
*
* @param \core\event\base $event The event.
* @return void
*/
public static function observer(\core\event\base $event)
{
global $CFG;
static $allowedcontexts = null;
if ($allowedcontexts === null) {
$allowedcontexts = array(CONTEXT_COURSE, CONTEXT_MODULE);
if (isset($CFG->block_xp_context) && $CFG->block_xp_context == CONTEXT_SYSTEM) {
$allowedcontexts[] = CONTEXT_SYSTEM;
}
}
if ($event->component === 'block_xp') {
// Skip own events.
} else {
if (!$event->userid || isguestuser($event->userid) || is_siteadmin($event->userid)) {
// Skip non-logged in users and guests.
} else {
if ($event->anonymous) {
// Skip all the events marked as anonymous.
} else {
if (!in_array($event->contextlevel, $allowedcontexts)) {
// Ignore events that are not in the right context.
} else {
if ($event->edulevel !== \core\event\base::LEVEL_PARTICIPATING) {
// Ignore events that are not participating.
} else {
if (!has_capability('block/xp:earnxp', $event->get_context(), $event->userid)) {
// Skip the events if the user does not have the capability to earn XP.
} else {
// Keep the event, and proceed.
$manager = block_xp_manager::get($event->courseid);
$manager->capture_event($event);
}
}
}
}
}
}
}
示例5: test_restore_event
public function test_restore_event()
{
$event1 = \core_tests\event\unittest_executed::create(array('context' => context_system::instance(), 'other' => array('sample' => 1, 'xx' => 10)));
$data1 = $event1->get_data();
$data1['eventname'] = '\\mod_xx\\event\\xx_yy';
$data1['component'] = 'mod_xx';
$data1['action'] = 'yy';
$data1['target'] = 'xx';
$extra1 = array('origin' => 'cli');
$event2 = \core\event\base::restore($data1, $extra1);
$data2 = $event2->get_data();
$extra2 = $event2->get_logextra();
$this->assertInstanceOf('core\\event\\unknown_logged', $event2);
$this->assertTrue($event2->is_triggered());
$this->assertTrue($event2->is_restored());
$this->assertNull($event2->get_url());
$this->assertEquals($data1, $data2);
$this->assertEquals($extra1, $extra2);
}
示例6: validate_data
/**
* Custom validation.
*
* @throws \coding_exception
*/
protected function validate_data()
{
parent::validate_data();
if ($this->contextlevel != CONTEXT_MODULE) {
throw new \coding_exception('Context level must be CONTEXT_MODULE.');
}
}
示例7: validate_data
/**
* Custom validation.
*
* @throws \coding_exception
* @return void
*/
protected function validate_data()
{
parent::validate_data();
if (!isset($this->other['title'])) {
throw new \coding_exception('The \'title\' value must be set in the object.');
}
}
示例8: validate_data
/**
* Custom validation.
*
* @throws \coding_exception
* @return void
*/
protected function validate_data()
{
parent::validate_data();
if (!isset($this->other['subscriptionid'])) {
throw new \coding_exception('The \'subscriptionid\' value must be set in other.');
}
}
示例9: validate_data
/**
* Custom validation.
*
* @throws \coding_exception
* @return void
*/
protected function validate_data()
{
parent::validate_data();
if (!isset($this->relateduserid)) {
throw new \coding_exception('The \'relateduserid\' must be set.');
}
}
示例10: validate_data
/**
* Custom validation.
*
* @throws \coding_exception
* @return void
*/
protected function validate_data()
{
parent::validate_data();
if (!isset($this->other['itemid'])) {
throw new \coding_exception('The itemid needs to be set in $other');
}
}
示例11: validate_data
/**
* Custom validations.
*
* @throws \coding_exception when validation fails.
* @return void
*/
protected function validate_data()
{
parent::validate_data();
// Make sure this class is never used without proper object details.
if (!$this->contextlevel === CONTEXT_MODULE) {
throw new \coding_exception('Context level must be CONTEXT_MODULE.');
}
}
示例12: validate_data
/**
* Custom validation.
*
* @throws \coding_exception
* @return void
*/
protected function validate_data()
{
parent::validate_data();
if (!isset($this->relateduserid)) {
debugging('The \'relateduserid\' value must be specified in the event.', DEBUG_DEVELOPER);
$this->relateduserid = $this->objectid;
}
}
示例13: validate_data
/**
* Custom validation.
*
* @throws \coding_exception
* @return void
*/
protected function validate_data()
{
parent::validate_data();
if (empty($this->other['mode'])) {
throw new \coding_exception('The \'mode\' value must be set in other.');
}
if (empty($this->relateduserid)) {
throw new \coding_exception('The \'relateduserid\' must be set.');
}
}
示例14: validate_data
/**
* Custom validation.
*
* @throws \coding_exception
* @return void
*/
protected function validate_data()
{
parent::validate_data();
if (!isset($this->other['desc'])) {
throw new \coding_exception('The \'desc\' value must be set in other.');
}
if ($this->contextlevel != CONTEXT_MODULE) {
throw new \coding_exception('Context level must be CONTEXT_MODULE.');
}
}
示例15: validate_data
/**
* Custom validation.
*
* @throws \coding_exception when validation does not pass.
* @return void
*/
protected function validate_data()
{
parent::validate_data();
if (!isset($this->other['dataid'])) {
throw new \coding_exception('The dataid must be set in $other.');
}
if (!isset($this->other['viewid'])) {
throw new \coding_exception('The viewid must be set in $other.');
}
}