From 49979b3775108f709cefbc9190eb9c7546aace94 Mon Sep 17 00:00:00 2001 From: "mkanat%bugzilla.org" <> Date: Tue, 4 Jul 2006 04:23:25 +0000 Subject: Bug 343112: @Bugzilla::Config::parampanels is only defined if something calls _load_params Patch By Max Kanat-Alexander r=LpSolit, a=justdave --- Bugzilla/Config.pm | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) (limited to 'Bugzilla/Config.pm') diff --git a/Bugzilla/Config.pm b/Bugzilla/Config.pm index 0e0c9d4e2..53e8b1b77 100644 --- a/Bugzilla/Config.pm +++ b/Bugzilla/Config.pm @@ -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) = @_; -- cgit v1.2.3-24-g4f1b