diff options
author | gerv%gerv.net <> | 2002-07-23 08:17:47 +0200 |
---|---|---|
committer | gerv%gerv.net <> | 2002-07-23 08:17:47 +0200 |
commit | 56988d23675f167fa3661535f9f30b658576caad (patch) | |
tree | 02051841d1df8901b89bb4a19ff1977a6719209b | |
parent | 09834ca2bdbc54dbe5dcbbb6d5dbaa7c9f937d52 (diff) | |
download | bugzilla-56988d23675f167fa3661535f9f30b658576caad.tar.gz bugzilla-56988d23675f167fa3661535f9f30b658576caad.tar.xz |
Bug 143650 - general template display system. Patch by gerv; 2xr=jouni.
-rwxr-xr-x | checksetup.pl | 11 | ||||
-rwxr-xr-x | page.cgi | 59 |
2 files changed, 69 insertions, 1 deletions
diff --git a/checksetup.pl b/checksetup.pl index e8d6747e8..6013bd1d5 100755 --- a/checksetup.pl +++ b/checksetup.pl @@ -523,7 +523,6 @@ LocalVar('platforms', ' - LocalVar('contenttypes', ' # # The types of content that template files can generate, indexed by file extension. @@ -538,6 +537,16 @@ $contenttypes = { +LocalVar('pages', ' +# +# A mapping from tags to template names for the general page display system, +# page.cgi. +# +%pages = ( +); +'); + + if ($newstuff ne "") { print "\nThis version of Bugzilla contains some variables that you may want\n", diff --git a/page.cgi b/page.cgi new file mode 100755 index 000000000..eefe86065 --- /dev/null +++ b/page.cgi @@ -0,0 +1,59 @@ +#!/usr/bonsaitools/bin/perl -wT +# -*- Mode: perl; indent-tabs-mode: nil -*- +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code is the Bugzilla Bug Tracking System. +# +# The Initial Developer of the Original Code is Netscape Communications +# Corporation. Portions created by Netscape are +# Copyright (C) 1998 Netscape Communications Corporation. All +# Rights Reserved. +# +# Contributor(s): Gervase Markham <gerv@gerv.net> +# + +############################################################################### +# This CGI is a general template display engine. To display templates using it, +# add them to the %pages hash in localconfig with a tag to refer to them by, +# then call page.cgi?page=<tag> . Tags may only contain the letters A-Z (in +# either case), numbers 0-9, the underscore "_" and the hyphen "-". +############################################################################### + +use diagnostics; +use strict; + +use lib "."; +require "CGI.pl"; + +use vars qw($template $vars %pages); + +ConnectToDatabase(); + +quietly_check_login(); + +print "Content-Type: text/html\n\n"; + +if (defined $::FORM{'id'}) { + $::FORM{'id'} =~ s/[^\w-]//g; + + if ($pages{$::FORM{'id'}}) { + $template->process($pages{$::FORM{'id'}}, $vars) + || ThrowTemplateError($template->error()); + exit; + } +} + +$vars->{'title'} = "Page not found"; +$vars->{'message'} = "The page you requested cannot be found."; + +$template->process("global/message.html.tmpl", $vars) + || ThrowTemplateError($template->error()); |