me_working=0; } function load_config() { $x = @file_get_contents( dirname(__FILE__).'/data.dat' ); if ($x!==false) { $c = unserialize($x); // do some more tests here $this->my_config = $c; } if ( !isset($this->my_config) or empty($this->my_config['filters']) ) { $this->my_config['filters'] = array( '.*' ); $this->my_config['show_args'] = false; $this->save_config(); } } function save_config() { $file = fopen( dirname(__FILE__).'/data.dat', 'w' ); fwrite($file, serialize($this->my_config) ); fclose( $file ); } function on_pre_trigger_event($event_info) { $this->dump('pre_trigger_event', $event_info); } function on_post_trigger_event($event_info) { $this->dump('post_trigger_event', $event_info); } function on_trigger_action($event_info) { $this->dump('trigger_action', $event_info); } function dump($event, $event_info) { foreach( $this->my_config['filters'] as $filter) { if ( preg_match( '/'.$filter.'/', $event_info['event'] ) ) { if ($this->my_config['show_args']) { $s = '
';
          $s .= htmlspecialchars( var_export( $event_info['data'], true ) );
          $s .= '
'; } else $s = ''; pwg_debug($event.' "'.$event_info['event'].'" '.($s) ); break; } } } function plugin_admin_menu($menu) { array_push($menu, array( 'NAME' => 'Event Tracer', 'URL' => get_admin_plugin_menu_link(dirname(__FILE__).'/tracer_admin.php') ) ); return $menu; } } $obj = new EventTracer(); $obj->load_config(); add_event_handler('get_admin_plugin_menu_links', array(&$obj, 'plugin_admin_menu') ); add_event_handler('pre_trigger_event', array(&$obj, 'on_pre_trigger_event') ); add_event_handler('post_trigger_event', array(&$obj, 'on_post_trigger_event') ); add_event_handler('trigger_action', array(&$obj, 'on_trigger_action') ); set_plugin_data($plugin['id'], $obj); ?>