~ubuntu-branches/ubuntu/oneiric/bugzilla/oneiric

« back to all changes in this revision

Viewing changes to page.cgi

  • Committer: Bazaar Package Importer
  • Author(s): Raphael Bossek
  • Date: 2008-06-27 22:34:34 UTC
  • mfrom: (1.1.7 upstream)
  • Revision ID: james.westby@ubuntu.com-20080627223434-0ib57vstn43bb4a3
Tags: 3.0.4.1-1
* Update of French, Russian and German translations. (closes: #488251)
* Added Bulgarian and Belarusian translations.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#!/usr/bin/perl -wT
2
 
# -*- Mode: perl; indent-tabs-mode: nil -*-
3
 
#
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/
8
 
#
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.
13
 
#
14
 
# The Original Code is the Bugzilla Bug Tracking System.
15
 
#
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
19
 
# Rights Reserved.
20
 
#
21
 
# Contributor(s): Gervase Markham <gerv@gerv.net>
22
 
#
23
 
 
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
 
###############################################################################
30
 
 
31
 
use strict;
32
 
 
33
 
use lib ".";
34
 
 
35
 
use Bugzilla;
36
 
use Bugzilla::Error;
37
 
 
38
 
Bugzilla->login();
39
 
 
40
 
my $cgi = Bugzilla->cgi;
41
 
my $template = Bugzilla->template;
42
 
 
43
 
my $id = $cgi->param('id');
44
 
if ($id) {
45
 
    # Remove all dodgy chars, and split into name and ctype.
46
 
    $id =~ s/[^\w\-\.]//g;
47
 
    $id =~ /(.*)\.(.*)/;
48
 
    if (!$2) {
49
 
        # if this regexp fails to match completely, something bad came in
50
 
        ThrowCodeError("bad_page_cgi_id", { "page_id" => $id });
51
 
    }
52
 
 
53
 
    my $format = $template->get_format("pages/$1", undef, $2);
54
 
    
55
 
    $cgi->param('id', $id);
56
 
 
57
 
    print $cgi->header($format->{'ctype'});
58
 
 
59
 
    $template->process("$format->{'template'}")
60
 
      || ThrowTemplateError($template->error());
61
 
}
62
 
else {
63
 
    ThrowUserError("no_page_specified");
64
 
}