diff options
| author | Mark Wells <mark@freeside.biz> | 2013-07-10 12:56:50 -0700 | 
|---|---|---|
| committer | Mark Wells <mark@freeside.biz> | 2013-07-10 12:56:50 -0700 | 
| commit | 183c7c355e3f783197457f348b99b0a14ad2e1d7 (patch) | |
| tree | 012e530b2540ec87382454b9b985c5ad7c85f3d6 /rt/lib/RT/Action/ExtractCustomFieldValuesWithCodeInTemplate.pm | |
| parent | ee8a3fde6a425db37f1e23ad0f0e977d6f0d1e93 (diff) | |
ExtractCustomFieldValues extension for RT, #9728
Diffstat (limited to 'rt/lib/RT/Action/ExtractCustomFieldValuesWithCodeInTemplate.pm')
| -rw-r--r-- | rt/lib/RT/Action/ExtractCustomFieldValuesWithCodeInTemplate.pm | 30 | 
1 files changed, 30 insertions, 0 deletions
| diff --git a/rt/lib/RT/Action/ExtractCustomFieldValuesWithCodeInTemplate.pm b/rt/lib/RT/Action/ExtractCustomFieldValuesWithCodeInTemplate.pm new file mode 100644 index 000000000..e05966be2 --- /dev/null +++ b/rt/lib/RT/Action/ExtractCustomFieldValuesWithCodeInTemplate.pm @@ -0,0 +1,30 @@ +package RT::Action::ExtractCustomFieldValuesWithCodeInTemplate; +use strict; +use warnings; + +use base qw(RT::Action::ExtractCustomFieldValues); + +sub TemplateContent { +    my $self = shift; +    my $is_broken = 0; + +    my $content = $self->TemplateObj->Content; + +    my $template = Text::Template->new(TYPE => 'STRING', SOURCE => $content); +    my $new_content = $template->fill_in( +        BROKEN => sub { +            my (%args) = @_; +            $RT::Logger->error("Template parsing error: $args{error}") +                unless $args{error} =~ /^Died at /; # ignore intentional die() +            $is_broken++; +            return undef; +        }, +    ); + +    return (undef, $self->loc('Template parsing error')) if $is_broken; + +    return $new_content; +} + +1; + | 
