summaryrefslogtreecommitdiff
path: root/httemplate/autohandler
blob: 3cc8e1021b1764da697ab3c8e2a31c446fc4e73f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
% $m->call_next;
<%init>

  $FS::Maketext::lh = '';

  dbh->{'private_profile'} = {} if UNIVERSAL::can(dbh, 'sprintProfile');

</%init>
<%filter>

if ( UNIVERSAL::can(dbh, 'sprintProfile') ) {

  my $profile = '';

  if ( $r && lc($r->content_type) =~ /^text\/html/
       && $FS::CurrentUser::CurrentUser->option('show_db_profile')
     )
  {

    ## barely worth it, just in case someone tries to use profiling on a
    ## non-RT install
    #eval "use Text::Wrapper;";
    #die $@ if $@;

    my $text = dbh->sprintProfile();
    #$text =~ s/^/                                                          /mg;

    $profile = '<PRE>'.  encode_entities( $text ). "\n\n". '</PRE>';

  }

  #well, could do this without sprintProfile, but definiately don't want it on
  #unless DBIx::Profile is loaded
  if ( $FS::CurrentUser::CurrentUser->option('save_db_profile') ) {
    #my $file = %%%FREESIDE_LOG%%%; #substitute here?  maybe get from FS.pm?
    my $file = '/usr/local/etc/freeside/'; #bah
    $file .= "dbix_profile.$$.". time;
    dbh->setLogFile($file);
    dbh->printProfile();
  }

  dbh->{'private_profile'} = {};

  s/(<\/BODY>[\s\n]*<\/HTML>[\s\n]*)/$profile$1/i;
}

</%filter>
<%cleanup>
   dbh->commit() if dbh;
</%cleanup>