]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 162151 - Fix page.cgi's method of finding templates. It now looks in a "pages...
authorgerv%gerv.net <>
Wed, 18 Sep 2002 14:20:12 +0000 (14:20 +0000)
committergerv%gerv.net <>
Wed, 18 Sep 2002 14:20:12 +0000 (14:20 +0000)
Bugzilla/Config.pm
checksetup.pl
page.cgi
template/en/default/global/user-error.html.tmpl

index a2c334a1627e8d5374de0e984047843acb9bf7df..3ebcb91c602a1cdf220a0984018d9f00c78dec7e 100644 (file)
@@ -51,9 +51,9 @@ Bugzilla::Config - Configuration parameters for Bugzilla
   use Bugzilla::Config qw(:db);
   print "Connecting to $db_name as $db_user with $db_pass\n";
 
-  # These variables do not belong in localconfig, and need to go
+  # This variable does not belong in localconfig, and needs to go
   # somewhere better
-  use Bugzilla::Config($contenttypes $pages)
+  use Bugzilla::Config($contenttypes)
 
 =head1 DESCRIPTION
 
@@ -75,7 +75,7 @@ use Bugzilla::Util;
 # when it shouldn't
 # ChmodDataFile is here until that stuff all moves out of globals.pl
 # into this file
-@Bugzilla::Config::EXPORT_OK = qw($contenttypes $pages ChmodDataFile);
+@Bugzilla::Config::EXPORT_OK = qw($contenttypes ChmodDataFile);
 %Bugzilla::Config::EXPORT_TAGS =
   (
    admin => [qw(GetParamList UpdateParams SetParam WriteParams)],
index 3f3fcb99963705288ed5580c3ac94e904d2c49de..803d64d141e316a00aca91530929d700f2f29bf9 100755 (executable)
@@ -568,17 +568,6 @@ $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",
           "to change and adapt to your local settings. Please edit the file\n",
index 2fcf1b9b78d169722d83f0c6b63fb7e08dc2a47a..3494b68ddbaf48757696339227472e19575f2142 100755 (executable)
--- 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=<tag> . 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.<ctype>.tmpl" and use the URL page.cgi?id=foo.<ctype> , where <ctype> 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");
+}
index 4edacf2c8c5a9f33b5144f24a262a7cc7d778617..6c0b370217cbc6b956172f8e4ea3e551f2233f0e 100644 (file)
     [% title = "No New Quips" %]
     This site does not permit the addition of new quips.
     
-  [% ELSIF error == "page_not_found" %]
-    [% title = "Page not found" %]
-    The page you requested cannot be found.
+  [% ELSIF error == "no_page_specified" %]
+    [% title = "No Page Specified" %]
+    You did not specify the id of a page to display.
 
   [% ELSIF error == "reassign_to_empty" %]
     [% title = "Illegal Reassignment" %]