diff options
Diffstat (limited to 'httemplate/autohandler')
-rw-r--r-- | httemplate/autohandler | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/httemplate/autohandler b/httemplate/autohandler new file mode 100644 index 0000000..ae04d42 --- /dev/null +++ b/httemplate/autohandler @@ -0,0 +1,44 @@ +% $m->call_next; +<%init> + dbh->{'private_profile'} = {} if UNIVERSAL::can(dbh, 'sprintProfile'); +</%init> +<%filter> + +my $profile = ''; +if ( UNIVERSAL::can(dbh, 'sprintProfile') ) { + + if ( lc($r->content_type) eq '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(); +</%cleanup> |