Bugzilla – Attachment 37417 Details for
Bug 9006
autoload in C4::Context is a bad idea
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 9006: Remove AUTOLOAD in C4::Context
Bug-9006-Remove-AUTOLOAD-in-C4Context.patch (text/plain), 9.38 KB, created by
Jonathan Druart
on 2015-04-01 12:01:34 UTC
(
hide
)
Description:
Bug 9006: Remove AUTOLOAD in C4::Context
Filename:
MIME Type:
Creator:
Jonathan Druart
Created:
2015-04-01 12:01:34 UTC
Size:
9.38 KB
patch
obsolete
>From 731da9e7fe268a269129c83e2332a8e7e5a926c0 Mon Sep 17 00:00:00 2001 >From: Jonathan Druart <jonathan.druart@biblibre.com> >Date: Wed, 1 Apr 2015 13:58:50 +0200 >Subject: [PATCH] Bug 9006: Remove AUTOLOAD in C4::Context > >Happily this was only used for intranetdir. >It's time to remove it and replace existing calls. > >I used the following commands to catch calls to C4::Context: >git grep 'C4::Context\->' | grep -v 'C4::Context->preference' | grep -v >'C4::Context->config' | grep -v 'C4::Context->userenv' | grep -v >'C4::Context->IsSuperLibrarian' | grep -v 'C4::Context->dbh' | grep -v >'C4::Context->set_preference' | grep -v '_syspref_cache' | grep -v >_userenv | grep -v 'C4::Context->interface' | grep -v >'C4::Context->Zconn' | grep -v 'C4::Context->queryparser' | grep -v >'C4::Context->tz' | grep -v 'C4::Context->boolean_preference' | grep -v >'C4::Context->memcached' >--- > C4/Context.pm | 20 +------------------- > C4/Items.pm | 2 +- > admin/auth_subfields_structure.pl | 4 ++-- > admin/marc_subfields_structure.pl | 4 ++-- > authorities/authorities.pl | 4 ++-- > cataloguing/addbiblio.pl | 4 ++-- > cataloguing/additem.pl | 2 +- > cataloguing/plugin_launcher.pl | 4 ++-- > reports/manager.pl | 2 +- > tools/batchMod.pl | 2 +- > 10 files changed, 15 insertions(+), 33 deletions(-) > >diff --git a/C4/Context.pm b/C4/Context.pm >index cc93af4..1965284 100644 >--- a/C4/Context.pm >+++ b/C4/Context.pm >@@ -211,7 +211,7 @@ returns the kohaversion stored in kohaversion.pl file > =cut > > sub KOHAVERSION { >- my $cgidir = C4::Context->intranetdir; >+ my $cgidir = C4::Context->config('intranetdir'); > > # Apparently the GIT code does not run out of a CGI-BIN subdirectory > # but distribution code does? (Stan, 1jan08) >@@ -651,24 +651,6 @@ sub set_preference { > $sth->finish; > } > >-# AUTOLOAD >-# This implements C4::Config->foo, and simply returns >-# C4::Context->config("foo"), as described in the documentation for >-# &config, above. >- >-# FIXME - Perhaps this should be extended to check &config first, and >-# then &preference if that fails. OTOH, AUTOLOAD could lead to crappy >-# code, so it'd probably be best to delete it altogether so as not to >-# encourage people to use it. >-sub AUTOLOAD >-{ >- my $self = shift; >- >- $AUTOLOAD =~ s/.*:://; # Chop off the package name, >- # leaving only the function name. >- return $self->config($AUTOLOAD); >-} >- > =head2 Zconn > > $Zconn = C4::Context->Zconn >diff --git a/C4/Items.pm b/C4/Items.pm >index 845bc70..29a94ef 100644 >--- a/C4/Items.pm >+++ b/C4/Items.pm >@@ -3032,7 +3032,7 @@ sub PrepareItemrecordDisplay { > }; > } elsif ( $tagslib->{$tag}->{$subfield}->{value_builder} ) { > # opening plugin >- my $plugin = C4::Context->intranetdir . "/cataloguing/value_builder/" . $tagslib->{$tag}->{$subfield}->{'value_builder'}; >+ my $plugin = C4::Context->config('intranetdir') . "/cataloguing/value_builder/" . $tagslib->{$tag}->{$subfield}->{'value_builder'}; > if (do $plugin) { > my $extended_param = plugin_parameters( $dbh, undef, $tagslib, $subfield_data{id}, undef ); > my ( $function_name, $javascript ) = plugin_javascript( $dbh, undef, $tagslib, $subfield_data{id}, undef ); >diff --git a/admin/auth_subfields_structure.pl b/admin/auth_subfields_structure.pl >index 1a2ec15..311e0c5 100755 >--- a/admin/auth_subfields_structure.pl >+++ b/admin/auth_subfields_structure.pl >@@ -108,9 +108,9 @@ if ($op eq 'add_form') { > # 2 cases here : on CVS install, $cgidir does not need a /cgi-bin > # on a standard install, /cgi-bin need to be added. > # test one, then the other >- my $cgidir = C4::Context->intranetdir ."/cgi-bin"; >+ my $cgidir = C4::Context->config('intranetdir') ."/cgi-bin"; > unless (opendir(DIR, "$cgidir/cataloguing/value_builder")) { >- $cgidir = C4::Context->intranetdir; >+ $cgidir = C4::Context->config('intranetdir'); > opendir(DIR, "$cgidir/cataloguing/value_builder") || die "can't opendir $cgidir/value_builder: $!"; > } > while (my $line = readdir(DIR)) { >diff --git a/admin/marc_subfields_structure.pl b/admin/marc_subfields_structure.pl >index 5261dd4..07cec48 100755 >--- a/admin/marc_subfields_structure.pl >+++ b/admin/marc_subfields_structure.pl >@@ -154,9 +154,9 @@ if ( $op eq 'add_form' ) { > # 2 cases here : on CVS install, $cgidir does not need a /cgi-bin > # on a standard install, /cgi-bin need to be added. > # test one, then the other >- my $cgidir = C4::Context->intranetdir . "/cgi-bin"; >+ my $cgidir = C4::Context->config('intranetdir') . "/cgi-bin"; > unless ( opendir( DIR, "$cgidir/cataloguing/value_builder" ) ) { >- $cgidir = C4::Context->intranetdir; >+ $cgidir = C4::Context->config('intranetdir'); > opendir( DIR, "$cgidir/cataloguing/value_builder" ) > || die "can't opendir $cgidir/value_builder: $!"; > } >diff --git a/authorities/authorities.pl b/authorities/authorities.pl >index f9a79ad..c057ccd 100755 >--- a/authorities/authorities.pl >+++ b/authorities/authorities.pl >@@ -218,9 +218,9 @@ sub create_input { > > # opening plugin. Just check whether we are on a developer computer on a production one > # (the cgidir differs) >- my $cgidir = C4::Context->intranetdir . "/cgi-bin/cataloguing/value_builder"; >+ my $cgidir = C4::Context->config('intranetdir') . "/cgi-bin/cataloguing/value_builder"; > unless (-r $cgidir and -d $cgidir) { >- $cgidir = C4::Context->intranetdir . "/cataloguing/value_builder"; >+ $cgidir = C4::Context->config('intranetdir') . "/cataloguing/value_builder"; > } > my $plugin = $cgidir . "/" . $tagslib->{$tag}->{$subfield}->{'value_builder'}; > do $plugin || die "Plugin Failed: ".$plugin; >diff --git a/cataloguing/addbiblio.pl b/cataloguing/addbiblio.pl >index 93ef3ef..f1c9ff5 100755 >--- a/cataloguing/addbiblio.pl >+++ b/cataloguing/addbiblio.pl >@@ -396,9 +396,9 @@ sub create_input { > > # opening plugin. Just check whether we are on a developer computer on a production one > # (the cgidir differs) >- my $cgidir = C4::Context->intranetdir . "/cgi-bin/cataloguing/value_builder"; >+ my $cgidir = C4::Context->config('intranetdir') . "/cgi-bin/cataloguing/value_builder"; > unless ( opendir( DIR, "$cgidir" ) ) { >- $cgidir = C4::Context->intranetdir . "/cataloguing/value_builder"; >+ $cgidir = C4::Context->config('intranetdir') . "/cataloguing/value_builder"; > closedir( DIR ); > } > my $plugin = $cgidir . "/" . $tagslib->{$tag}->{$subfield}->{'value_builder'}; >diff --git a/cataloguing/additem.pl b/cataloguing/additem.pl >index 6ff3bbd..30a14d2 100755 >--- a/cataloguing/additem.pl >+++ b/cataloguing/additem.pl >@@ -269,7 +269,7 @@ sub generate_subfield_form { > # it's a plugin field > elsif ( $subfieldlib->{value_builder} ) { > # opening plugin >- my $plugin = C4::Context->intranetdir . "/cataloguing/value_builder/" . $subfieldlib->{'value_builder'}; >+ my $plugin = C4::Context->config('intranetdir') . "/cataloguing/value_builder/" . $subfieldlib->{'value_builder'}; > if (do $plugin) { > my $extended_param = plugin_parameters( $dbh, $temp, $tagslib, $subfield_data{id}, $loop_data ); > my ( $function_name, $javascript ) = plugin_javascript( $dbh, $temp, $tagslib, $subfield_data{id}, $loop_data ); >diff --git a/cataloguing/plugin_launcher.pl b/cataloguing/plugin_launcher.pl >index 50aeb32..b9b185f 100755 >--- a/cataloguing/plugin_launcher.pl >+++ b/cataloguing/plugin_launcher.pl >@@ -29,10 +29,10 @@ my $plugin_name="cataloguing/value_builder/".$input->param("plugin_name"); > > # opening plugin. Just check whether we are on a developer computer on a production one > # (the cgidir differs) >-my $cgidir = C4::Context->intranetdir ."/cgi-bin"; >+my $cgidir = C4::Context->config('intranetdir') ."/cgi-bin"; > my $vbdir = "$cgidir/cataloguing/value_builder"; > unless (-r $vbdir and -d $vbdir) { >- $cgidir = C4::Context->intranetdir; >+ $cgidir = C4::Context->config('intranetdir'); > } > do $cgidir."/".$plugin_name; > &plugin($input); >diff --git a/reports/manager.pl b/reports/manager.pl >index 7a91e9e..057fcba 100755 >--- a/reports/manager.pl >+++ b/reports/manager.pl >@@ -44,7 +44,7 @@ $template->param(do_it => $do_it, > ); > my $cgidir = C4::Context->config('intranetdir')."/cgi-bin/reports/"; > unless (-r $cgidir and -d $cgidir) { >- $cgidir = C4::Context->intranetdir."/reports/"; >+ $cgidir = C4::Context->config('intranetdir')."/reports/"; > } > my $plugin = $cgidir.$report_name.".plugin"; > require $plugin; >diff --git a/tools/batchMod.pl b/tools/batchMod.pl >index 4ff95e8..bbe2cf5 100755 >--- a/tools/batchMod.pl >+++ b/tools/batchMod.pl >@@ -415,7 +415,7 @@ foreach my $tag (sort keys %{$tagslib}) { > } > elsif ( $tagslib->{$tag}->{$subfield}->{value_builder} ) { > # opening plugin >- my $plugin = C4::Context->intranetdir . "/cataloguing/value_builder/" . $tagslib->{$tag}->{$subfield}->{'value_builder'}; >+ my $plugin = C4::Context->config('intranetdir') . "/cataloguing/value_builder/" . $tagslib->{$tag}->{$subfield}->{'value_builder'}; > if (do $plugin) { > my $temp; > my $extended_param = plugin_parameters( $dbh, $temp, $tagslib, $subfield_data{id}, \@loop_data ); >-- >2.1.0
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 9006
:
37417
|
40349
|
40916
|
40924