2
# -*- Mode: perl; indent-tabs-mode: nil -*-
4
# The contents of this file are subject to the Mozilla Public
5
# License Version 1.1 (the "License"); you may not use this file
6
# except in compliance with the License. You may obtain a copy of
7
# the License at http://www.mozilla.org/MPL/
9
# Software distributed under the License is distributed on an "AS
10
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
11
# implied. See the License for the specific language governing
12
# rights and limitations under the License.
14
# The Original Code is the Bugzilla Bug Tracking System.
16
# The Initial Developer of the Original Code is Netscape Communications
17
# Corporation. Portions created by Netscape are
18
# Copyright (C) 1998 Netscape Communications Corporation. All
21
# Contributor(s): Gervase Markham <gerv@gerv.net>
24
###############################################################################
25
# This CGI is a general template display engine. To display templates using it,
26
# put them in the "pages" subdirectory of en/default, call them
27
# "foo.<ctype>.tmpl" and use the URL page.cgi?id=foo.<ctype> , where <ctype> is
28
# a content-type, e.g. html.
29
###############################################################################
40
my $cgi = Bugzilla->cgi;
41
my $template = Bugzilla->template;
43
my $id = $cgi->param('id');
45
# Remove all dodgy chars, and split into name and ctype.
46
$id =~ s/[^\w\-\.]//g;
49
# if this regexp fails to match completely, something bad came in
50
ThrowCodeError("bad_page_cgi_id", { "page_id" => $id });
53
my $format = $template->get_format("pages/$1", undef, $2);
55
$cgi->param('id', $id);
57
print $cgi->header($format->{'ctype'});
59
$template->process("$format->{'template'}")
60
|| ThrowTemplateError($template->error());
63
ThrowUserError("no_page_specified");