| 
      
            Lines 20-25
          package Koha::Plugins;
      
      
        Link Here
      
     | 
  
        
          | 20 | 
          use Modern::Perl;  | 
          20 | 
          use Modern::Perl;  | 
        
        
          | 21 | 
           | 
          21 | 
           | 
        
        
          | 22 | 
          use Class::Inspector;  | 
          22 | 
          use Class::Inspector;  | 
        
            
               | 
               | 
              23 | 
              use List::MoreUtils qw(any);  | 
            
        
          | 23 | 
          use Module::Load::Conditional qw(can_load);  | 
          24 | 
          use Module::Load::Conditional qw(can_load);  | 
        
        
          | 24 | 
          use Module::Load qw(load);  | 
          25 | 
          use Module::Load qw(load);  | 
        
        
          | 25 | 
          use Module::Pluggable search_path => ['Koha::Plugin'], except => qr/::Edifact(|::Line|::Message|::Order|::Segment|::Transport)$/;  | 
          26 | 
          use Module::Pluggable search_path => ['Koha::Plugin'], except => qr/::Edifact(|::Line|::Message|::Order|::Segment|::Transport)$/;  | 
        
  
    | 
      
            Lines 76-87
          sub GetPlugins {
      
      
        Link Here
      
     | 
  
        
          | 76 | 
              my $plugin_classes = $dbh->selectcol_arrayref('SELECT DISTINCT(plugin_class) FROM plugin_methods'); | 
          77 | 
              my $plugin_classes = $dbh->selectcol_arrayref('SELECT DISTINCT(plugin_class) FROM plugin_methods'); | 
        
        
          | 77 | 
              my @plugins;  | 
          78 | 
              my @plugins;  | 
        
        
          | 78 | 
           | 
          79 | 
           | 
        
            
               | 
               | 
              80 | 
                  # Loop through all plugins that implement at least a method  | 
            
        
          | 79 | 
              foreach my $plugin_class (@$plugin_classes) { | 
          81 | 
              foreach my $plugin_class (@$plugin_classes) { | 
        
          
            
              | 80 | 
                      next if $method && !Koha::Plugins::Methods->search({ plugin_class => $plugin_class, plugin_method => $method })->count; | 
              82 | 
                      # filter the plugin out by method  | 
            
            
               | 
               | 
              83 | 
                      next  | 
            
            
              | 84 | 
                          if $method  | 
            
            
              | 85 | 
                          && !Koha::Plugins::Methods->search(  | 
            
            
              | 86 | 
                          { plugin_class => $plugin_class, plugin_method => $method } )->count; | 
            
            
              | 87 | 
               | 
            
        
          | 81 | 
                  load $plugin_class;  | 
          88 | 
                  load $plugin_class;  | 
        
        
          | 82 | 
                  my $plugin = $plugin_class->new({ enable_plugins => $self->{'enable_plugins'} }); | 
          89 | 
                  my $plugin = $plugin_class->new({ enable_plugins => $self->{'enable_plugins'} }); | 
        
            
               | 
               | 
              90 | 
               | 
            
            
              | 91 | 
                      # filter the plugin out by metadata  | 
            
            
              | 92 | 
                      my $plugin_metadata = $plugin->get_metadata;  | 
            
            
              | 93 | 
                      next  | 
            
            
              | 94 | 
                          if $plugin_metadata  | 
            
            
              | 95 | 
                          and %$req_metadata  | 
            
            
              | 96 | 
                          and any { !$plugin_metadata->{$_} || $plugin_metadata->{$_} ne $req_metadata->{$_} } keys %$req_metadata; | 
            
            
              | 97 | 
               | 
            
        
          | 83 | 
                  push @plugins, $plugin;  | 
          98 | 
                  push @plugins, $plugin;  | 
        
            
               | 
               | 
              99 | 
               | 
            
        
          | 84 | 
              }  | 
          100 | 
              }  | 
        
            
               | 
               | 
              101 | 
               | 
            
        
          | 85 | 
              return @plugins;  | 
          102 | 
              return @plugins;  | 
        
        
          | 86 | 
          }  | 
          103 | 
          }  | 
        
        
          | 87 | 
           | 
          104 | 
           | 
        
            
              | 88 | 
              -   | 
               | 
               |