diff options
Diffstat (limited to 'rt/lib/RT/Template_Vendor.pm')
-rw-r--r-- | rt/lib/RT/Template_Vendor.pm | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/rt/lib/RT/Template_Vendor.pm b/rt/lib/RT/Template_Vendor.pm new file mode 100644 index 000000000..f1a276c3d --- /dev/null +++ b/rt/lib/RT/Template_Vendor.pm @@ -0,0 +1,34 @@ +package RT::Template; + +=item LoadByName + +Takes Name and Queue arguments. Tries to load queue specific template +first, then global. If Queue argument is omitted then global template +is tried, not template with the name in any queue. + +=cut + +sub LoadByName { + my $self = shift; + my %args = ( + Queue => undef, + Name => undef, + @_ + ); + my $queue = $args{'Queue'}; + if ( blessed $queue ) { + $queue = $queue->id; + } elsif ( defined $queue and $queue =~ /\D/ ) { + my $tmp = RT::Queue->new( $self->CurrentUser ); + $tmp->Load($queue); + $queue = $tmp->id; + } + + return $self->LoadGlobalTemplate( $args{'Name'} ) unless $queue; + + $self->LoadQueueTemplate( Queue => $queue, Name => $args{'Name'} ); + return $self->id if $self->id; + return $self->LoadGlobalTemplate( $args{'Name'} ); +} + +1; |