Lines 396-401
sub status {
Link Here
|
396 |
} |
396 |
} |
397 |
} |
397 |
} |
398 |
|
398 |
|
|
|
399 |
=head3 get_backend_plugin |
400 |
|
401 |
my $backend_plugin = $self->get_backend_plugin($backend_name); |
402 |
|
403 |
Returns the installed I<Koha::Plugin> corresponding to the given backend_id |
404 |
|
405 |
=cut |
406 |
|
407 |
sub get_backend_plugin { |
408 |
my ( $self, $backend_id ) = @_; |
409 |
|
410 |
my @backend_plugins = Koha::Plugins->new()->GetPlugins( |
411 |
{ |
412 |
method => 'ill_backend', |
413 |
metadata => { name => $backend_id }, |
414 |
all => 1, |
415 |
errors => 1 |
416 |
} |
417 |
); |
418 |
|
419 |
return $backend_plugins[0]; |
420 |
} |
421 |
|
399 |
=head3 load_backend |
422 |
=head3 load_backend |
400 |
|
423 |
|
401 |
Require "Base.pm" from the relevant ILL backend. |
424 |
Require "Base.pm" from the relevant ILL backend. |
Lines 405-412
Require "Base.pm" from the relevant ILL backend.
Link Here
|
405 |
sub load_backend { |
428 |
sub load_backend { |
406 |
my ( $self, $backend_id ) = @_; |
429 |
my ( $self, $backend_id ) = @_; |
407 |
|
430 |
|
408 |
my @raw = qw/Koha Illbackends/; # Base Path |
|
|
409 |
|
410 |
my $backend_name = $backend_id || $self->backend; |
431 |
my $backend_name = $backend_id || $self->backend; |
411 |
|
432 |
|
412 |
unless ( defined $backend_name && $backend_name ne '' ) { |
433 |
unless ( defined $backend_name && $backend_name ne '' ) { |
Lines 414-426
sub load_backend {
Link Here
|
414 |
"An invalid backend ID was requested ('')"); |
435 |
"An invalid backend ID was requested ('')"); |
415 |
} |
436 |
} |
416 |
|
437 |
|
417 |
my $location = join "/", @raw, $backend_name, "Base.pm"; # File to load |
438 |
my $backend_plugin = $self->get_backend_plugin($backend_name); |
418 |
my $backend_class = join "::", @raw, $backend_name, "Base"; # Package name |
439 |
if ($backend_plugin) { |
419 |
require $location; |
440 |
|
420 |
$self->{_my_backend} = $backend_class->new({ |
441 |
# New way of loading backends: Through plugins |
421 |
config => $self->_config, |
442 |
my $backend_plugin_class = $backend_plugin->{class}; |
422 |
logger => Koha::Illrequest::Logger->new |
443 |
|
423 |
}); |
444 |
$self->{_my_backend} = $backend_plugin_class->new_backend( |
|
|
445 |
{ |
446 |
config => $self->_config, |
447 |
logger => Koha::Illrequest::Logger->new |
448 |
} |
449 |
); |
450 |
} elsif ($backend_name) { |
451 |
|
452 |
# Old way of loading backends: Through backend_dir config |
453 |
my @raw = qw/Koha Illbackends/; # Base Path |
454 |
my $location = join "/", @raw, $backend_name, "Base.pm"; # File to load |
455 |
my $backend_class = join "::", @raw, $backend_name, "Base"; # Package name |
456 |
require $location; |
457 |
$self->{_my_backend} = $backend_class->new( |
458 |
{ |
459 |
config => $self->_config, |
460 |
logger => Koha::Illrequest::Logger->new |
461 |
} |
462 |
); |
463 |
} |
464 |
|
424 |
return $self; |
465 |
return $self; |
425 |
} |
466 |
} |
426 |
|
467 |
|
Lines 506-512
sub _config {
Link Here
|
506 |
|
547 |
|
507 |
sub metadata { |
548 |
sub metadata { |
508 |
my ( $self ) = @_; |
549 |
my ( $self ) = @_; |
509 |
return $self->_backend->metadata($self); |
550 |
|
|
|
551 |
if ( $self->_backend->can('metadata') ) { |
552 |
|
553 |
# Old way of loading backends: Previous expected method was 'metadata' |
554 |
return $self->_backend->metadata($self); |
555 |
} else { |
556 |
|
557 |
# New way of loading backends (as plugins): New expected method is 'backend_metadata' |
558 |
return $self->_backend->backend_metadata($self); |
559 |
} |
510 |
} |
560 |
} |
511 |
|
561 |
|
512 |
=head3 _core_status_graph |
562 |
=head3 _core_status_graph |
Lines 1030-1037
sub expand_template {
Link Here
|
1030 |
my ( $self, $params ) = @_; |
1080 |
my ( $self, $params ) = @_; |
1031 |
my $backend = $self->_backend->name; |
1081 |
my $backend = $self->_backend->name; |
1032 |
# Generate path to file to load |
1082 |
# Generate path to file to load |
1033 |
my $backend_dir = $self->_config->backend_dir; |
1083 |
my $backend_dir; |
1034 |
my $backend_tmpl = join "/", $backend_dir, $backend; |
1084 |
my $backend_tmpl; |
|
|
1085 |
|
1086 |
my $backend_plugin = $self->get_backend_plugin( $self->_backend->name ); |
1087 |
if ($backend_plugin) { |
1088 |
|
1089 |
# New way of loading backends: Through plugins |
1090 |
$backend_dir = $backend_plugin->bundle_path; |
1091 |
$backend_tmpl = $backend_dir; |
1092 |
} else { |
1093 |
|
1094 |
# Old way of loading backends: Through backend_dir config |
1095 |
$backend_dir = $self->_config->backend_dir; |
1096 |
$backend_tmpl = join "/", $backend_dir, $backend; |
1097 |
} |
1098 |
|
1035 |
my $intra_tmpl = join "/", $backend_tmpl, "intra-includes", |
1099 |
my $intra_tmpl = join "/", $backend_tmpl, "intra-includes", |
1036 |
( $params->{method}//q{} ) . ".inc"; |
1100 |
( $params->{method}//q{} ) . ".inc"; |
1037 |
my $opac_tmpl = join "/", $backend_tmpl, "opac-includes", |
1101 |
my $opac_tmpl = join "/", $backend_tmpl, "opac-includes", |