View | Details | Raw Unified | Return to bug 19306
Collapse All | Expand All

(-)a/Koha/Plugins/Handler.pm (+30 lines)
Lines 24-29 use File::Path qw(remove_tree); Link Here
24
use Module::Load::Conditional qw(can_load);
24
use Module::Load::Conditional qw(can_load);
25
25
26
use C4::Context;
26
use C4::Context;
27
use Koha::Plugins;
27
28
28
BEGIN {
29
BEGIN {
29
    my $pluginsdir = C4::Context->config("pluginsdir");
30
    my $pluginsdir = C4::Context->config("pluginsdir");
Lines 73-78 sub run { Link Here
73
    }
74
    }
74
}
75
}
75
76
77
=item run_matching
78
79
Run all plugins in sequence matching plugin_method
80
81
=cut
82
83
sub run_matching {
84
    my ( $class, $args ) = @_;
85
    my $params = $args->{'params'};
86
    return $params unless ( C4::Context->config("enable_plugins") || $args->{'enable_plugins'} );
87
88
    my $plugin_method = $args->{'method'};
89
    my @plugins = Koha::Plugins->new()->GetPlugins({
90
        method => $plugin_method
91
    });
92
    
93
    foreach my $plugin (@plugins) {
94
        $params = Koha::Plugins::Handler->run(
95
            {
96
                class => $plugin->{'class'},
97
                method => $plugin_method,
98
                params => $params
99
            }
100
            );
101
    }
102
103
    return $params;
104
}
105
76
=item delete
106
=item delete
77
107
78
Deletes a plugin
108
Deletes a plugin
(-)a/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm (-1 / +30 lines)
Lines 45-50 use JSON; Link Here
45
use List::MoreUtils qw/ each_array /;
45
use List::MoreUtils qw/ each_array /;
46
use Modern::Perl;
46
use Modern::Perl;
47
use URI::Escape;
47
use URI::Escape;
48
use Koha::Plugins::Handler;
48
49
49
use C4::Context;
50
use C4::Context;
50
use Data::Dumper;    # TODO remove
51
use Data::Dumper;    # TODO remove
Lines 200-205 sub build_query_compat { Link Here
200
        $lang, $params )
201
        $lang, $params )
201
      = @_;
202
      = @_;
202
203
204
205
    my $plugin_result = Koha::Plugins::Handler->run_matching(
206
        {
207
            method => 'build_query_before',
208
            params => {
209
                operators => $operators,
210
                operands => $operands,
211
                indexes => $indexes,
212
                orig_limits => $orig_limits,
213
                sort_by => $sort_by,
214
                scan => $scan,
215
                lang => $lang,
216
                params => $params
217
            },
218
            engine => 'elasticsearch'
219
        }
220
        );
221
222
    ($operators, $operands, $indexes, $orig_limits, $sort_by, $scan, $lang, $params) = (
223
        $plugin_result->{'operators'},
224
        $plugin_result->{'operands'},
225
        $plugin_result->{'indexes'},
226
        $plugin_result->{'orig_limits'},
227
        $plugin_result->{'sort_by'},
228
        $plugin_result->{'scan'},
229
        $plugin_result->{'lang'},
230
        $plugin_result->{'params'},
231
        );
232
203
#die Dumper ( $self, $operators, $operands, $indexes, $orig_limits, $sort_by, $scan, $lang );
233
#die Dumper ( $self, $operators, $operands, $indexes, $orig_limits, $sort_by, $scan, $lang );
204
    my @sort_params  = $self->_convert_sort_fields(@$sort_by);
234
    my @sort_params  = $self->_convert_sort_fields(@$sort_by);
205
    my @index_params = $self->_convert_index_fields(@$indexes);
235
    my @index_params = $self->_convert_index_fields(@$indexes);
206
- 

Return to bug 19306