Ignore:
Timestamp:
Oct 18, 2008, 3:08:58 AM (16 years ago)
Author:
rvelices
Message:

merge rev 2771,2772 from branch 2.0

  • 2771 event tracer improvement: option to show all registered event handlers for every page
  • 2772 php optims (small): remove/replace preg_xxx with faster simple string functions
Location:
trunk/plugins/event_tracer
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/plugins/event_tracer/main.inc.php

    r2588 r2773  
    3535class EventTracer
    3636{
    37   var $me_working;
    3837  var $my_config;
     38  var $trigger_counts = array();
    3939
    4040  function EventTracer()
    4141  {
    42     $this->me_working=0;
    4342  }
    4443
     
    6867      $this->my_config['filters'] = array( '.*' );
    6968      $this->my_config['show_args'] = false;
     69      $this->my_config['show_registered'] = true;
    7070      $this->save_config();
    7171    }
     
    8383  function on_pre_trigger_event($event_info)
    8484  {
     85    @$this->trigger_counts[$event_info['event']]++;
    8586    $this->dump('pre_trigger_event', $event_info);
    8687  }
     
    9293  function on_trigger_action($event_info)
    9394  {
     95   @$this->trigger_counts[$event_info['event']]++;
    9496    $this->dump('trigger_action', $event_info);
     97  }
     98
     99  function on_page_tail()
     100  {
     101    if (1 || @$this->my_config['show_registered'])
     102    {
     103      global $debug, $pwg_event_handlers;
     104      $out = '';
     105      foreach ($pwg_event_handlers as $event => $prio_array)
     106      {
     107        $out .= $event.' '.intval(@$this->trigger_counts[$event])." calls\n";
     108        foreach ($prio_array as $prio => $handlers)
     109        {
     110          foreach ($handlers as $handler)
     111          {
     112            $out .= "\t$prio ";
     113            if ( is_array($handler['function']) )
     114            {
     115              if ( is_string($handler['function'][0]) )
     116                $out .= $handler['function'][0].'::';
     117              else
     118                $out .= @get_class($handler['function'][0]).'->';
     119              $out .= $handler['function'][1];
     120            }
     121            else
     122             $out .= $handler['function'];
     123            $out .= "\n";
     124          }
     125        }
     126        $out .= "\n";
     127      }
     128      $debug .= '<pre>'.$out.'</pre>';
     129    }
    95130  }
    96131
     
    109144        else
    110145          $s = '';
    111         pwg_debug($event.' "'.$event_info['event'].'" '.($s) );
     146        pwg_debug($event.' "'.$event_info['event'].'" '.($this->trigger_counts[$event_info['event']]).' calls '.($s) );
    112147        break;
    113148      }
     
    133168add_event_handler('pre_trigger_event', array(&$obj, 'on_pre_trigger_event') );
    134169add_event_handler('post_trigger_event', array(&$obj, 'on_post_trigger_event') );
     170add_event_handler('loc_begin_page_tail', array(&$obj, 'on_page_tail') );
    135171add_event_handler('trigger_action', array(&$obj, 'on_trigger_action') );
    136172set_plugin_data($plugin['id'], $obj);
  • trunk/plugins/event_tracer/tracer_admin.php

    r2254 r2773  
    1818    $me->my_config['filters'] = array();
    1919  $me->my_config['show_args'] = isset($_POST['eventTracer_show_args']);
     20  $me->my_config['show_registered'] = isset($_POST['eventTracer_show_registered']);
    2021  $me->save_config();
    2122  global $page;
     
    2526$template->assign('EVENT_TRACER_SHOW_ARGS', $me->my_config['show_args'] ? 'checked="checked"' : '' );
    2627$template->assign('U_LIST_EVENTS', get_admin_plugin_menu_link(dirname(__FILE__).'/event_list.php'));
     28$template->assign('EVENT_TRACER_SHOW_REGISTERED', $me->my_config['show_registered'] ? 'checked="checked"' : '' );
    2729
    2830//$template->assign_var('EVENT_TRACER_F_ACTION', $my_url);
  • trunk/plugins/event_tracer/tracer_admin.tpl

    r2342 r2773  
    1313        <legend>Event Tracer</legend>
    1414
    15 <label>Show event argument
     15<label>Show event arguments
    1616        <input type="checkbox" name="eventTracer_show_args" {$EVENT_TRACER_SHOW_ARGS} />
    1717</label>
     18
    1819<br/>
     20
    1921<label>Fill below a list of regular expressions (one per line).
    2022An event will be logged if its name matches at least one expression in the list.
    2123        <textarea name="eventTracer_filters" id="eventTracer_filters"rows="10" cols="80">{$EVENT_TRACER_FILTERS}</textarea>
     24</label>
     25
     26<br/>
     27
     28<label>Show all registered handlers
     29        <input type="checkbox" name="eventTracer_show_registered" {$EVENT_TRACER_SHOW_REGISTERED} />
    2230</label>
    2331
Note: See TracChangeset for help on using the changeset viewer.