@@ -, +, @@ field characters 35-37 or UNIMARC 101a) --- C4/Languages.pm | 14 ++++++++++++++ Koha/SearchEngine/Elasticsearch.pm | 3 +-- Koha/SearchEngine/Elasticsearch/QueryBuilder.pm | 1 + Koha/SearchEngine/Elasticsearch/Search.pm | 1 + admin/searchengine/elasticsearch/mappings.yaml | 7 ++++--- koha-tmpl/intranet-tmpl/prog/en/includes/facets.inc | 5 ++++- .../modules/admin/searchengine/elasticsearch/mappings.tt | 1 + koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-facets.inc | 5 ++++- t/db_dependent/Languages.t | 8 +++++++- 9 files changed, 37 insertions(+), 8 deletions(-) --- a/C4/Languages.pm +++ a/C4/Languages.pm @@ -612,6 +612,20 @@ sub getlanguage { return $language; } +=head2 get_rfc4646_from_iso639 + + Select a language rfc4646 code given an iso639 code + +=cut + +sub get_rfc4646_from_iso639 { + + my $iso_code = shift; + my $rfc_subtag = Koha::Database->new()->schema->resultset('LanguageRfc4646ToIso639')->find({iso639_2_code=>$iso_code})->rfc4646_subtag; + return $rfc_subtag; + +} + 1; __END__ --- a/Koha/SearchEngine/Elasticsearch.pm +++ a/Koha/SearchEngine/Elasticsearch.pm @@ -486,7 +486,6 @@ sub process_error { return "Unable to perform your search. Please try again.\n"; } -<<<<<<< HEAD =head2 _read_configuration my $conf = _read_configuration(); @@ -550,7 +549,7 @@ sub get_facetable_fields { # These should correspond to the ES field names, as opposed to the CCL # things that zebra uses. - my @search_field_names = qw( author itype location su-geo se subject ccode holdingbranch homebranch ); + my @search_field_names = qw( author itype location su-geo se subject ccode holdingbranch homebranch ln); my @faceted_fields = Koha::SearchFields->search( { name => { -in => \@search_field_names }, facet_order => { '!=' => undef } }, { order_by => ['facet_order'] } ); --- a/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm +++ a/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm @@ -119,6 +119,7 @@ sub build_query { 'su-geo' => { terms => { field => "su-geo__facet" } }, se => { terms => { field => "se__facet" } }, ccode => { terms => { field => "ccode__facet" } }, + ln => { terms => { field => "ln__facet" } }, }; my $display_library_facets = C4::Context->preference('DisplayLibraryFacets'); --- a/Koha/SearchEngine/Elasticsearch/Search.pm +++ a/Koha/SearchEngine/Elasticsearch/Search.pm @@ -434,6 +434,7 @@ sub _convert_facets { ccode => 'CollectionCodes', holdingbranch => 'HoldingLibrary', homebranch => 'HomeLibrary', + ln => 'Language', ); my @facetable_fields = Koha::SearchEngine::Elasticsearch->get_facetable_fields; --- a/admin/searchengine/elasticsearch/mappings.yaml +++ a/admin/searchengine/elasticsearch/mappings.yaml @@ -1720,22 +1720,23 @@ biblios: ln: label: ln mappings: - - facet: '' + - facet: '1' marc_field: 008_/35-37 marc_type: marc21 sort: ~ suggestible: '' - - facet: '' + - facet: '1' marc_field: 008_/35-37 marc_type: normarc sort: ~ suggestible: '' - - facet: '' + - facet: '1' marc_field: 101a marc_type: unimarc sort: ~ suggestible: '' type: '' + facet_order: 10 local-classification: label: local-classification mappings: --- a/koha-tmpl/intranet-tmpl/prog/en/includes/facets.inc +++ a/koha-tmpl/intranet-tmpl/prog/en/includes/facets.inc @@ -1,4 +1,5 @@ [% USE AuthorisedValues %] +[% USE Languages %] [% IF ( opacfacets ) %] [% IF ( facets_loop ) %]
@@ -21,7 +22,8 @@ [% IF ( facets_loo.type_label_HomeLibrary ) %]Home libraries[% END %] [% IF ( facets_loo.type_label_HoldingLibrary ) %]Holding libraries[% END %] [% IF facets_loo.type_label_Location %]Locations[% END %] -[% IF facets_loo.type_label_CollectionCodes %]Collections[% END %] +[% IF facets_loo.type_label_CollectionCodes %]Collections[% END %] +[% IF facets_loo.type_label_Language %]Languages[% END %]