]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 343112: @Bugzilla::Config::parampanels is only defined if something calls _load_p...
authormkanat%bugzilla.org <>
Tue, 4 Jul 2006 04:23:25 +0000 (04:23 +0000)
committermkanat%bugzilla.org <>
Tue, 4 Jul 2006 04:23:25 +0000 (04:23 +0000)
Patch By Max Kanat-Alexander <mkanat@bugzilla.org> r=LpSolit, a=justdave

Bugzilla/Config.pm
editparams.cgi

index 0e0c9d4e266af41799aa82e2da84f49e335abb6a..53e8b1b77a7bb09eee84c0c19f921ced187511c4 100644 (file)
@@ -35,8 +35,6 @@ use strict;
 use base qw(Exporter);
 use Bugzilla::Constants;
 
-our @parampanels = ();
-
 # Module stuff
 @Bugzilla::Config::EXPORT = qw(Param);
 
@@ -48,9 +46,8 @@ our @parampanels = ();
    admin => [qw(UpdateParams SetParam WriteParams)],
    db => [qw($db_driver $db_host $db_port $db_name $db_user $db_pass $db_sock)],
    localconfig => [qw($cvsbin $interdiffbin $diffpath $webservergroup)],
-   params => [qw(@parampanels)],
   );
-Exporter::export_ok_tags('admin', 'db', 'localconfig', 'params');
+Exporter::export_ok_tags('admin', 'db', 'localconfig');
 
 use vars qw(@param_list);
 
@@ -71,17 +68,12 @@ do $localconfig;
 my %params;
 # Load in the param definitions
 sub _load_params {
-    my $libpath = bz_locations()->{'libpath'};
-    foreach my $item ((glob "$libpath/Bugzilla/Config/*.pm")) {
-        $item =~ m#/([^/]+)\.pm$#;
-        my $module = $1;
-        next if ($module eq 'Common');
-        require "Bugzilla/Config/$module.pm";
+    foreach my $module (param_panels()) {
+        eval("require Bugzilla::Config::$module") || die $@;
         my @new_param_list = "Bugzilla::Config::$module"->get_param_list();
         foreach my $item (@new_param_list) {
             $params{$item->{'name'}} = $item;
         }
-        push(@parampanels, $module);
         push(@param_list, @new_param_list);
     }
 }
@@ -89,6 +81,17 @@ sub _load_params {
 
 # Subroutines go here
 
+sub param_panels {
+    my @param_panels;
+    my $libpath = bz_locations()->{'libpath'};
+    foreach my $item ((glob "$libpath/Bugzilla/Config/*.pm")) {
+        $item =~ m#/([^/]+)\.pm$#;
+        my $module = $1;
+        push(@param_panels, $module) unless $module eq 'Common';
+    }
+    return @param_panels;
+}
+
 sub Param {
     my ($param) = @_;
 
index 61fc03811ded2cb3bd2e1ff35d3e54e88ea8f69d..f8c12f581103cc3ec4f2a3a70268f3d8cb4da1af 100755 (executable)
@@ -27,13 +27,11 @@ use lib ".";
 
 use Bugzilla;
 use Bugzilla::Constants;
-use Bugzilla::Config qw(:DEFAULT :admin :params);
+use Bugzilla::Config qw(:DEFAULT :admin);
 use Bugzilla::Config::Common;
 use Bugzilla::Util;
 use Bugzilla::Error;
 
-use vars qw(@parampanels);
-
 my $user = Bugzilla->login(LOGIN_REQUIRED);
 my $cgi = Bugzilla->cgi;
 my $template = Bugzilla->template;
@@ -53,9 +51,8 @@ $current_panel = $1;
 
 my $current_module;
 my @panels = ();
-foreach my $panel (@parampanels) {
-    next if ($panel eq 'Common');
-    require "Bugzilla/Config/$panel.pm";
+foreach my $panel (Bugzilla::Config::param_panels()) {
+    eval("require Bugzilla::Config::$panel") || die $@;
     my @module_param_list = "Bugzilla::Config::${panel}"->get_param_list(1);
     my $item = { name => lc($panel),
                  current => ($current_panel eq lc($panel)) ? 1 : 0,