summaryrefslogtreecommitdiff
path: root/rt/lib/RT/Template_Overlay.pm
diff options
context:
space:
mode:
Diffstat (limited to 'rt/lib/RT/Template_Overlay.pm')
-rw-r--r--rt/lib/RT/Template_Overlay.pm27
1 files changed, 17 insertions, 10 deletions
diff --git a/rt/lib/RT/Template_Overlay.pm b/rt/lib/RT/Template_Overlay.pm
index 575333ef1..4ce7298a8 100644
--- a/rt/lib/RT/Template_Overlay.pm
+++ b/rt/lib/RT/Template_Overlay.pm
@@ -2,7 +2,7 @@
#
# COPYRIGHT:
#
-# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2007 Best Practical Solutions, LLC
# <jesse@bestpractical.com>
#
# (Except where explicitly superseded by other copyright notices)
@@ -22,7 +22,9 @@
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
-# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301 or visit their web page on the internet at
+# http://www.gnu.org/copyleft/gpl.html.
#
#
# CONTRIBUTION SUBMISSION POLICY:
@@ -171,7 +173,7 @@ sub Load {
=head2 LoadGlobalTemplate NAME
-Load the global tempalte with the name NAME
+Load the global template with the name NAME
=cut
@@ -297,7 +299,8 @@ sub MIMEObj {
This routine performs Text::Template parsing on the template and then
imports the results into a MIME::Entity so we can really use it
- Takes a hash containing Argument, TicketObj, and TransactionObj.
+ Takes a hash containing Argument, TicketObj, and TransactionObj. TicketObj
+ and TransactionObj are not mandatory, but highly recommended.
It returns a tuple of (val, message)
If val is 0, the message contains an error message
@@ -360,12 +363,16 @@ sub _ParseContent {
);
no warnings 'redefine';
- $T::Ticket = $args{'TicketObj'};
- $T::Transaction = $args{'TransactionObj'};
- $T::Argument = $args{'Argument'};
- $T::Requestor = eval { $T::Ticket->Requestors->UserMembersObj->First->Name };
- $T::rtname = $RT::rtname;
- *T::loc = sub { $T::Ticket->loc(@_) };
+ local $T::Ticket = $args{'TicketObj'};
+ local $T::Transaction = $args{'TransactionObj'};
+ local $T::Argument = $args{'Argument'};
+ local $T::Requestor = eval { $T::Ticket->Requestors->UserMembersObj->First->Name } if $T::Ticket;
+ local $T::rtname = $RT::rtname;
+
+ local *T::loc = sub {
+ $T::Ticket ? $T::Ticket->loc(@_)
+ : $self->CurrentUser->loc(@_)
+ };
my $content = $self->Content;
unless ( defined $content ) {