return request_cache()->{template};
}
+sub template_inner {
+ my $class = shift;
+ $class->request_cache->{template_inner} ||= Bugzilla::Template->create();
+ return $class->request_cache->{template_inner};
+}
+
sub cgi {
my $class = shift;
request_cache()->{cgi} ||= new Bugzilla::CGI();
The current C<Template> object, to be used for output
+=item C<template_inner>
+
+If you ever need a L<Bugzilla::Template> object while you're already
+processing a template, use this.
+
=item C<cgi>
The current C<cgi> object. Note that modules should B<not> be using this in
};
my $msg;
- my $template = Bugzilla::Template->create();
+ my $template = Bugzilla->template_inner;
$template->process("email/newchangedmail.txt.tmpl", $vars, \$msg)
|| ThrowTemplateError($template->error());
# we have to do this in one pattern, and so this is semi-messy.
# Also, we can't use $bug_re?$comment_re? because that will match the
# empty string
- my $bug_re = qr/bug\s*\#?\s*(\d+)/i;
+ my $bug_word = get_text('term', { term => 'bug' });
+ my $bug_re = qr/\Q$bug_word\E\s*\#?\s*(\d+)/i;
my $comment_re = qr/comment\s*\#?\s*(\d+)/i;
$text =~ s~\b($bug_re(?:\s*,?\s*$comment_re)?|$comment_re)
~ # We have several choices. $1 here is the link, and $2-4 are set
"<a href=\"$current_bugurl#c$4\">$1</a>")
~egox;
- # Old duplicate markers
+ # Old duplicate markers. These don't use $bug_word because they are old
+ # and were never customizable.
$text =~ s~(?<=^\*\*\*\ This\ bug\ has\ been\ marked\ as\ a\ duplicate\ of\ )
(\d+)
(?=\ \*\*\*\Z)
sub get_text {
my ($name, $vars) = @_;
- my $template = Bugzilla->template;
+ my $template = Bugzilla->template_inner;
$vars ||= {};
$vars->{'message'} = $name;
my $message;
ChangeStatus('RESOLVED');
ChangeResolution('DUPLICATE');
my $comment = $cgi->param('comment');
- $comment .= "\n\n*** This bug has been marked " .
- "as a duplicate of bug $duplicate ***";
+ $comment .= "\n\n"
+ . get_text('bug_duplicate_of', { dupe_of => $duplicate });
$cgi->param('comment', $comment);
last SWITCH;
};
$dbh->do(q{INSERT INTO cc (who, bug_id) VALUES (?, ?)},
undef, $reporter, $duplicate);
}
- # Bug 171639 - Duplicate notifications do not need to be private.
- AppendComment($duplicate, $whoid,
- "*** Bug " . $cgi->param('id') .
- " has been marked as a duplicate of this bug. ***",
- 0, $timestamp);
+ my $dupe_comment = get_text('bug_has_duplicate',
+ { dupe => $cgi->param('id') });
+ # Bug 171639 - Duplicate notifications do not need to be private.
+ AppendComment($duplicate, $whoid, $dupe_comment, 0, $timestamp);
$dbh->do(q{INSERT INTO duplicates VALUES (?, ?)}, undef,
$duplicate, $cgi->param('id'));
Please add your attachment by clicking the "Create a New Attachment" link
below.
+ [% ELSIF message_tag == "bug_duplicate_of" %]
+ *** This [% terms.bug %] has been marked as a duplicate of [% terms.bug %] [%+ dupe_of FILTER html %] ***
+
+ [% ELSIF message_tag == "bug_has_duplicate" %]
+ *** [% terms.Bug %] [%+ dupe FILTER html %] has been marked as a duplicate of this [% terms.bug %]. ***
+
[% ELSIF message_tag == "buglist_adding_field" %]
[% title = "Adding field to search page..." %]
[% link = "Click here if the page does not redisplay automatically." %]
The cookie that was remembering your login is now gone.
[% END %]
+ [% ELSIF message_tag == "term" %]
+ [% terms.$term FILTER html %]
+
[% ELSIF message_tag == "user_match_failed" %]
You entered a username that did not match any known
[% terms.Bugzilla %] users, so we have instead left