From 1809e275fdbca3cb1607799a630489a3a9dc956d Mon Sep 17 00:00:00 2001 From: "gerv%gerv.net" <> Date: Wed, 18 Sep 2002 14:20:12 +0000 Subject: Bug 162151 - Fix page.cgi's method of finding templates. It now looks in a "pages" subdirectory of the template directory. Patch by gerv; r=bbaetz. --- page.cgi | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) (limited to 'page.cgi') diff --git a/page.cgi b/page.cgi index 2fcf1b9b7..3494b68dd 100755 --- a/page.cgi +++ b/page.cgi @@ -23,9 +23,9 @@ ############################################################################### # 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 "-". +# put them in the "pages" subdirectory of template/en/default, call them +# "foo..tmpl" and use the URL page.cgi?id=foo. , where is +# a content-type, e.g. html. ############################################################################### use strict; @@ -33,21 +33,23 @@ use strict; use lib "."; require "CGI.pl"; -use vars qw($template $vars %pages); +use vars qw($template $vars); ConnectToDatabase(); quietly_check_login(); if (defined $::FORM{'id'}) { - $::FORM{'id'} =~ s/[^\w-]//g; - - if ($pages{$::FORM{'id'}}) { - print "Content-Type: text/html\n\n"; - $template->process($pages{$::FORM{'id'}}, $vars) - || ThrowTemplateError($template->error()); - exit; - } -} + $::FORM{'id'} =~ s/[^\w-\.]//g; + $::FORM{'id'} =~ /(.*)(\.(.*))?/; + + my $format = GetFormat($1, undef, $3); + + print "Content-Type: $format->{'ctype'}\n\n"; -ThrowUserError("page_not_found"); + $template->process("pages/$format->{'template'}", $vars) + || ThrowTemplateError($template->error()); +} +else { + ThrowUserError("no_page_specified"); +} -- cgit v1.2.3-24-g4f1b