From 56988d23675f167fa3661535f9f30b658576caad Mon Sep 17 00:00:00 2001 From: "gerv%gerv.net" <> Date: Tue, 23 Jul 2002 06:17:47 +0000 Subject: Bug 143650 - general template display system. Patch by gerv; 2xr=jouni. --- checksetup.pl | 11 ++++++++++- page.cgi | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+), 1 deletion(-) create mode 100755 page.cgi 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 +# + +############################################################################### +# 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= . 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()); -- cgit v1.2.3-24-g4f1b