Bugzilla – Attachment 48297 Details for
Bug 15879
Allow multiple plugin directories to be defined in koha-conf.xml
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 15879 - Allow multiple plugin directories to be defined in koha-conf.xml
Bug-15879---Allow-multiple-plugin-directories-to-b.patch (text/plain), 3.26 KB, created by
Kyle M Hall (khall)
on 2016-02-22 14:55:22 UTC
(
hide
)
Description:
Bug 15879 - Allow multiple plugin directories to be defined in koha-conf.xml
Filename:
MIME Type:
Creator:
Kyle M Hall (khall)
Created:
2016-02-22 14:55:22 UTC
Size:
3.26 KB
patch
obsolete
>From b32ae4fc0ccb8ce545685d5c2678a630241710e1 Mon Sep 17 00:00:00 2001 >From: Kyle M Hall <kyle@bywatersolutions.com> >Date: Mon, 22 Feb 2016 14:25:18 +0000 >Subject: [PATCH] Bug 15879 - Allow multiple plugin directories to be defined > in koha-conf.xml > >It would be very useful to be able to define multiple plugin directories >in the Koha conf file. This would allow for ease of plugin development >so that each plugin installed can live in its own git repository. For >compatibility, the first plugindir instance defined should be the one >used for uploading plugins via the web interface. > >Test Plan: >1) Apply this patch >2) Define a second pluginsdir line in your koha-conf.xml >3) Clone the kitchen sink plugin to this new path like this: > git clone https://github.com/bywatersolutions/koha-plugin-kitchen-sink.git /path/to/new/plugins/dir >4) Restart memcached if you are running it >5) The Kitchen Sink plugin should now appear in your list of plugins! >--- > Koha/Plugins.pm | 4 +++- > Koha/Plugins/Handler.pm | 14 +++++++++++--- > plugins/plugins-upload.pl | 1 + > 3 files changed, 15 insertions(+), 4 deletions(-) > >diff --git a/Koha/Plugins.pm b/Koha/Plugins.pm >index 9e2d4eb..d07aa4a 100644 >--- a/Koha/Plugins.pm >+++ b/Koha/Plugins.pm >@@ -26,7 +26,9 @@ use C4::Context; > use C4::Output; > > BEGIN { >- push @INC, C4::Context->config("pluginsdir"); >+ my $pluginsdir = C4::Context->config("pluginsdir"); >+ my @pluginsdir = ref($pluginsdir) eq 'ARRAY' ? @$pluginsdir : $pluginsdir; >+ push( @INC, @pluginsdir ); > } > > =head1 NAME >diff --git a/Koha/Plugins/Handler.pm b/Koha/Plugins/Handler.pm >index 187560d..7170e8b 100644 >--- a/Koha/Plugins/Handler.pm >+++ b/Koha/Plugins/Handler.pm >@@ -26,7 +26,9 @@ use Module::Load::Conditional qw(can_load); > use C4::Context; > > BEGIN { >- push @INC, C4::Context->config("pluginsdir"); >+ my $pluginsdir = C4::Context->config("pluginsdir"); >+ my @pluginsdir = ref($pluginsdir) eq 'ARRAY' ? @$pluginsdir : $pluginsdir; >+ push( @INC, @pluginsdir ); > } > > =head1 NAME >@@ -79,8 +81,14 @@ Deletes a plugin > sub delete { > my ( $class, $args ) = @_; > my $plugin_class = $args->{'class'}; >- my $plugin_dir = C4::Context->config("pluginsdir"); >- my $plugin_path = "$plugin_dir/" . join( '/', split( '::', $args->{'class'} ) ); >+ >+ my $plugin_path = $plugin_class; >+ $plugin_path =~ s/::/\//g; # Take class name, transform :: to / to get path >+ $plugin_path =~ s/$/.pm/; # Add .pm to the end >+ require $plugin_path; # Require the plugin to have it's path listed in INC >+ $plugin_path = >+ $INC{$plugin_path}; # Get the full true path to the plugin from INC >+ $plugin_path =~ s/.pm//; # Remove the .pm from the end > > Koha::Plugins::Handler->run( { class => $plugin_class, method => 'uninstall' } ); > >diff --git a/plugins/plugins-upload.pl b/plugins/plugins-upload.pl >index 853b2ac..1e315f9 100755 >--- a/plugins/plugins-upload.pl >+++ b/plugins/plugins-upload.pl >@@ -56,6 +56,7 @@ my %errors; > if ($plugins_enabled) { > if ( ( $op eq 'Upload' ) && $uploadfile ) { > my $plugins_dir = C4::Context->config("pluginsdir"); >+ $plugins_dir = ref($plugins_dir) eq 'ARRAY' ? $plugins_dir->[0] : $plugins_dir; > > my $dirname = File::Temp::tempdir( CLEANUP => 1 ); > $debug and warn "dirname = $dirname"; >-- >2.1.4
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 15879
:
48296
|
48297
|
58594
|
58805
|
58806