Can not execute event observer???

Can not execute event observer???

by Shrikrishna tiwari -
Number of replies: 2

hello friends 

i have created an event in

1-   local/navitus/classes/event/bbb_viewed.php folder directory

namespace local_navitus\event;

class bbb_viewed extends \core\event\base {

public static function get_name() {
return "bbb_viewed";
}


public function get_description() {
return "bbb_viewed";
}


protected function get_legacy_logdata() {
return null;
}

/**
* Init method.
*
* @return void
*/

protected function validate_data() {
parent::validate_data();

/*if (!isset($this->relateduserid)) {
throw new \coding_exception('The \'relateduserid\' must be set.');
}
if (!isset($this->other['subject'])) {
throw new \coding_exception('The \'subject\' value must be set in other.');
}
if (!isset($this->other['message'])) {
throw new \coding_exception('The \'message\' value must be set in other.');
}
if (!isset($this->other['errorinfo'])) {
throw new \coding_exception('The \'errorinfo\' value must be set in other.');
}*/
}

protected function init() {
//$this->context = \context_system::instance();
$this->data['crud'] = 'c';
$this->data['edulevel'] = self::LEVEL_OTHER;
}
2- place observer registration code in local/bigbluebutton/db/events.php


<?php

defined('MOODLE_INTERNAL') || die();

$handlers = array(

);

$observers = array(

array(
'eventname' => '\local_navitus\event\bbb_viewed',
'callback' => '\local_bigbluebutton\bigbluebutton_observer::bbb_viewed_review',
'priority' => 200,
'internal' => 0,
),

);


3- place observer.php code in  local/bigbluebutton/classes/observer.php


<?php

namespace local_bigbluebutton;

defined('MOODLE_INTERNAL') || die();

//namespace mod_bigbluebuttonbn;

class bigbluebutton_observer
{

public static function bbb_viewed_review(\local_navitus\event\bbb_viewed $event) {
global $DB, $CFG, $USER;
ob_start();
var_export($event);
$contents = ob_get_contents();
ob_end_clean();
error_log($contents);

error_log("Bigbluebiutton Event Fired : ");

return true;
}


}
4 i call in this event in mod/bigbluebuttonbn/view.php


$context = context_course::instance($bbbsession['course']->id);

$data= array(
'userid'=>$bbbsession['userID'],
'starttime'=>time(),
'endtime'=>'',
'courseid'=>$bbbsession['course']->id,
'cmid'=>$bbbsession['cm']->id,
'status'=>'Attainding',
'module'=>'VirtualClassroom'
);

$param=array(
'context'=>$context,
//'objectid' => $bbbsession['course']->id,
'other'=>$data
);

$event=\local_navitus\event\bbb_viewed::create($param);
$event->trigger();


THE OUTPUT IS:

Can not execute event observer '\local_bigbluebutton\bigbluebutton_observer::bbb_viewed_review'


  • line 164 of \lib\classes\event\manager.php: call to debugging()
  • line 75 of \lib\classes\event\manager.php: call to core\event\manager::process_buffers()
  • line 814 of \lib\classes\event\base.php: call to core\event\manager::dispatch()
  • line 459 of \mod\bigbluebuttonbn\view.php: call to core\event\base->trigger()
  • line 325 of \mod\bigbluebuttonbn\view.php: call to bigbluebuttonbn_view()

hello developers 

i could not recognise actual error point , i also changed version number and purge caches each time i changes anything in code,  please guide asap.





Average of ratings: -
In reply to Shrikrishna tiwari

Re: Can not execute event observer???

by Sam Chaffee -
Picture of Core developers

Looks like your observer filename and classname don't match for autoloading. The way the class is named now, the file path should be local/bigbluebutton/classes/bigbluebutton_observer.php

See https://docs.moodle.org/dev/Automatic_class_loading for more details.

Average of ratings: Useful (1)