diff options
Diffstat (limited to 'httemplate/autohandler')
| -rw-r--r-- | httemplate/autohandler | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/httemplate/autohandler b/httemplate/autohandler new file mode 100644 index 000000000..c326e3e18 --- /dev/null +++ b/httemplate/autohandler @@ -0,0 +1,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 ( 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(); +</%cleanup> |
