From: erickson Date: Fri, 6 Mar 2009 16:36:34 +0000 (+0000) Subject: added copy price and org setting helpers. put helper functions into 'helpers' hash... X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=169ef968e390df53a27f8bd9e8a5c057fb11d5f8;p=evergreen%2Ftadl.git added copy price and org setting helpers. put helper functions into 'helpers' hash to reduce global namespace pollution git-svn-id: svn://svn.open-ils.org/ILS/trunk@12440 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Trigger/Reactor.pm b/Open-ILS/src/perlmods/OpenILS/Application/Trigger/Reactor.pm index 3f46b04c6f..f0adce8e98 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Trigger/Reactor.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Trigger/Reactor.pm @@ -6,24 +6,71 @@ use DateTime::Format::ISO8601; use OpenSRF::Utils qw/:datetime/; use OpenSRF::Utils::Logger qw(:logger); use OpenILS::Application::AppUtils; +my $U = 'OpenILS::Application::AppUtils'; sub fourty_two { return 42 } sub NOOP_True { return 1 } sub NOOP_False { return 0 } + + +# helper functions inserted into the TT environment +my $_TT_helpers = { + + # turns a date into something TT can understand + format_date => sub { + my $date = shift; + $date = DateTime::Format::ISO8601->new->parse_datetime(clense_ISO8601($date)); + return sprintf( + "%0.2d:%0.2d:%0.2d %0.2d-%0.2d-%0.4d", + $date->hour, + $date->minute, + $date->second, + $date->day, + $date->month, + $date->year + ); + }, + + # escapes a string for inclusion in an XML document. escapes &, <, and > characters + escape_xml => sub { + my $str = shift; + $str =~ s/&/&/sog; + $str =~ s//>/sog; + return $str; + }, + + # returns the calculated user locale + get_user_locale => sub { + my $user_id = shift; + return $U->get_user_locale($user_id); + }, + + # returns the calculated copy price + get_copy_price => sub { + my $copy_id = shift; + return $U->get_copy_price($copy_id); + }, + + # returns the org unit setting value + get_org_setting => sub { + my($org_id, $setting) = @_; + return $U->ou_ancestor_setting_value($org_id, $setting); + } +}; + + # processes templates. Returns template output on success, undef on error sub run_TT { my $self = shift; my $env = shift; - return '' unless $env->{template}; + return undef unless $env->{template}; my $output = ''; my $tt = Template->new; - - $env->{format_date} = \&format_date; - $env->{escape_xml} = \&escape_xml; - $env->{user_locale} = \&user_locale; + $env->{helpers} = $_TT_helpers; $tt->process(\$env->{template}, $env, \$output) or $logger->error("Error processing Trigger template: " . $tt->error); @@ -31,33 +78,5 @@ sub run_TT { return $output; } -# turns a date into something TT can understand -sub format_date { - my $date = shift; - $date = DateTime::Format::ISO8601->new->parse_datetime(clense_ISO8601($date)); - return sprintf( - "%0.2d:%0.2d:%0.2d %0.2d-%0.2d-%0.4d", - $date->hour, - $date->minute, - $date->second, - $date->day, - $date->month, - $date->year - ); -} - -sub escape_xml { - my $str = shift; - $str =~ s/&/&/sog; - $str =~ s//>/sog; - return $str; -} - - -sub user_locale { - my $user_id = shift; - return OpenILS::Application::AppUtils->get_user_locale($user_id); -} 1;