From: miker Date: Tue, 7 Jun 2005 18:57:35 +0000 (+0000) Subject: template handler X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=e3e342a91bed5e7a5c186317e5ad251163df0713;p=Evergreen.git template handler git-svn-id: svn://svn.open-ils.org/ILS/trunk@770 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/src/extras/opensearch.pm b/Open-ILS/src/extras/opensearch.pm new file mode 100644 index 0000000000..479334cadb --- /dev/null +++ b/Open-ILS/src/extras/opensearch.pm @@ -0,0 +1,84 @@ +package opensearch; +use strict; use warnings; + +use Apache2 (); +use Apache::Log; +use Apache::Const -compile => qw(OK REDIRECT :log); +use APR::Const -compile => qw(:error SUCCESS); +use Apache::RequestRec (); +use Apache::RequestIO (); +use Apache::RequestUtil; + +use CGI (); +use Template qw(:template); + +use OpenSRF::EX qw(:try); +use OpenSRF::System; + +my $child_init_ttk = "opensearch.ttk"; + +my $includes = [ '/pines/cvs/ILS/Open-ILS/src/templates' ]; + +my $plugin_base = 'OpenILS::Template::Plugin'; + +sub handler { + + my $apache = shift; + print "Content-type: text/xml; charset=utf-8\n\n"; + + _process_template( + apache => $apache, + template => 'opensearch.ttk', + pre_process => $init_ttk ); + + return Apache::OK; +} + +sub child_init_handler { + _process_template( template => $child_init_ttk ); +} + +sub _process_template { + + my %params = @_; + my $ttk = $params{template} || return undef; + my $apache = $params{apache} || undef; + my $pre_process = $params{pre_process} || undef; + my $param_hash = $params{params} || {}; + + my $template; + + $template = Template->new( { + OUTPUT => $apache, + ABSOLUTE => 1, + RELATIVE => 1, + PLUGIN_BASE => $plugin_base, + PRE_PROCESS => $pre_process, + INCLUDE_PATH => $includes, + PRE_CHOMP => 1, + POST_CHOMP => 1, + } + ); + + try { + + if( ! $template->process( $ttk, $param_hash ) ) { + warn "Error Occured: " . $template->error(); + my $err = $template->error(); + $err =~ s/\n/\/g; + warn "Error processing template $ttk\n"; + my $string = "
Unable to process template:

" . $err . "!!!
"; + $template->process( $error_ttk , { error => $string } ); + } + + } catch Error with { + my $e = shift; + warn "Error processing template $ttk: $e - $@ \n"; + print "


Error

$e

$@

"; + return; + }; + +} + + +1;