d2cd2e09aa
When working with hierarchical subject headings, it is sometimes helpful to do a search for all records with a specific subject, plus broader/narrower/related subjects. This patch adds a suggestion plugin for these "exploded" subject searches to Koha. Note that this patch depends on both bug 8211 AND bug 8209. To test (NOTE: this test plan covers both 8211 and 8726): 1) Make sure you have a bunch of hierarchical subjects. I created geographical subjects for "Arizona," "United States," and "Phoenix," and linked them together using 551s, and made sure I had a half dozen records linking to each (but not all to all three). 2) Do a search for su-br:Arizona (or choose "Subject and broader terms" on the advanced search screen with "more options" displayed), and check that you get the records with the subject "Arizona" and the records with the subject "United States" 3) Do a search for su-na:Arizona (or choose "Subject and narrower terms" on the advanced search screen with "more options" displayed), and check that you get the records with the subject "Arizona" and the records with the subject "Phoenix" 4) Do a search for su-rl:Arizona (or choose "Subject and related terms" on the advanced search screen with "more options" displayed), and check that you get the records with the subject "Arizona," the records with the subject "United States," and the records with the subject "Phoenix" 5) Ensure that other searches still work (keyword, subject, ccl, whatever) 6) Use "Did you mean?" page in admin section to enable ExplodedTerms plugin 7) Do a keyword search on the OPAC, confirm that searching for exploded terms is suggested. 8) Do a subject search on the OPAC, confirm that searching for exploded terms is suggested. 9) Do a non-keyword, non-subject search on the OPAC, confirm that searching for exploded terms is NOT suggested. 10) Disable ExplodedTerms plugin and enable AuthorityFile plugin. 11) Do search on OPAC, confirm suggestions are made from authority file. 12) Sign off Signed-off-by: wajasu <matted-34813@mypacks.net> Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com> Split into two patches. This patch includes only the functionality.
37 lines
1.3 KiB
Perl
Executable file
37 lines
1.3 KiB
Perl
Executable file
#!/usr/bin/perl
|
|
|
|
use strict;
|
|
use warnings;
|
|
use CGI;
|
|
use C4::Context;
|
|
use C4::Auth;
|
|
use C4::Output;
|
|
use Koha::SuggestionEngine;
|
|
use Module::Load::Conditional qw(can_load);
|
|
use JSON;
|
|
|
|
my $input = new CGI;
|
|
|
|
my ($template, $loggedinuser, $cookie)
|
|
= get_template_and_user({template_name => "admin/didyoumean.tt",
|
|
query => $input,
|
|
type => "intranet",
|
|
authnotrequired => 0,
|
|
flagsrequired => {parameters => 'parameters_remaining_permissions'},
|
|
debug => 1,
|
|
});
|
|
|
|
my $opacplugins = from_json(C4::Context->preference('OPACdidyoumean') || '[]');
|
|
|
|
my $intraplugins = from_json(C4::Context->preference('INTRAdidyoumean') || '[]');
|
|
|
|
my @pluginlist = Koha::SuggestionEngine::AvailablePlugins();
|
|
foreach my $plugin (@pluginlist) {
|
|
next if $plugin eq 'Koha::SuggestionEngine::Plugin::Null';
|
|
next unless (can_load( modules => { "$plugin" => undef } ));
|
|
push @$opacplugins, { name => $plugin->NAME } unless grep { $_->{name} eq $plugin->NAME } @$opacplugins;
|
|
push @$intraplugins, { name => $plugin->NAME } unless grep { $_->{name} eq $plugin->NAME } @$intraplugins;
|
|
}
|
|
$template->{VARS}->{OPACpluginlist} = $opacplugins;
|
|
$template->{VARS}->{INTRApluginlist} = $intraplugins;
|
|
output_html_with_http_headers $input, $cookie, $template->output;
|