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__
# 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 title-series subject ccode holdingbranch homebranch );
+ my @search_field_names = qw( author itype location su-geo title-series subject ccode holdingbranch homebranch ln );
my @faceted_fields = Koha::SearchFields->search(
{ name => { -in => \@search_field_names }, facet_order => { '!=' => undef } }, { order_by => ['facet_order'] }
);
# See _convert_facets in Search.pm for how these get turned into
# things that Koha can use.
$res->{aggregations} = {
- author => { terms => { field => "author__facet" } },
- subject => { terms => { field => "subject__facet" } },
- itype => { terms => { field => "itype__facet" } },
- location => { terms => { field => "location__facet" } },
- 'su-geo' => { terms => { field => "su-geo__facet" } },
+ author => { terms => { field => "author__facet" } },
+ subject => { terms => { field => "subject__facet" } },
+ itype => { terms => { field => "itype__facet" } },
+ location => { terms => { field => "location__facet" } },
+ 'su-geo' => { terms => { field => "su-geo__facet" } },
'title-series' => { terms => { field => "title-series__facet" } },
- ccode => { terms => { field => "ccode__facet" } },
+ ccode => { terms => { field => "ccode__facet" } },
+ ln => { terms => { field => "ln__facet" } },
};
my $display_library_facets = C4::Context->preference('DisplayLibraryFacets');
ccode => 'CollectionCodes',
holdingbranch => 'HoldingLibrary',
homebranch => 'HomeLibrary',
+ ln => 'Language',
);
my @facetable_fields =
Koha::SearchEngine::Elasticsearch->get_facetable_fields;
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
ln-audio:
label: ln-audio
mappings:
[% USE raw %]
[% USE AuthorisedValues %]
+[% USE Languages %]
[% IF ( opacfacets ) %]
[% IF ( facets_loop ) %]
<div id="search-facets">
[% IF ( facets_loo.type_label_HoldingLibrary ) %]<span id="facet-holding-libraries">Holding libraries</span>[% END %]
[% IF facets_loo.type_label_Location %]<span id="facet-locations">Locations</span>[% END %]
[% IF facets_loo.type_label_CollectionCodes %]<span id="facet-collections">Collections</span>[% END %]
+[% IF facets_loo.type_label_Language %]<span id="facet-languages">Languages</span>[% END %]
<ul>
[% SET url = "/cgi-bin/koha/catalogue/search.pl?" _ query_cgi _ limit_cgi %]
[% IF ( sort_by ) %]
[% END %]
[% FOREACH facet IN facets_loo.facets %]
[% IF facets_loo.type_label_CollectionCodes %][% SET facet.facet_label_value = AuthorisedValues.GetByCode('CCODE',facet.facet_label_value,0) || facet.facet_label_value %][% END %]
+ [% IF facets_loo.type_label_Language %][% SET facet.facet_label_value = Languages.GetByISOCode(lang,facet.facet_label_value) || facet.facet_label_value %][% END %]
<li>
[% IF facet.active %]
[% local_url = BLOCK %][% url | $raw %][% "&nolimit=" _ facet.type_link_value _ ":" _ facet.facet_link_value | url %][% END %]
[% CASE 'ccode' %]Collections
[% CASE 'holdingbranch' %]Holding libraries
[% CASE 'homebranch' %]Home libraries
+ [% CASE 'ln' %]Language
[% CASE %][% f | html %]
[% END %]
</td>
[% USE raw %]
[% USE AuthorisedValues %]
+[% USE Languages %]
[% IF ( opacfacets && facets_loop && total ) %]
<div id="search-facets">
<h4><a href="#" class="menu-collapse-toggle">Refine your search</a></h4>
[% IF facets_loo.type_label_Series %]<h5 id="facet-series">Series</h5>[% END %]
[% IF facets_loo.type_label_ItemTypes %]<h5 id="facet-itemtypes">Item types</h5>[% END %]
[% IF facets_loo.type_label_CollectionCodes %]<h5 id="facet-collections">Collections</h5>[% END %]
+ [% IF facets_loo.type_label_Language %]<h5 id="facet-languages">Languages</h5>[% END %]
[% UNLESS singleBranchMode %]
[% IF ( facets_loo.type_label_HomeLibrary ) %]<h5 id="facet-home-libraries">Home libraries</h5>[% END %]
[% IF ( facets_loo.type_label_HoldingLibrary ) %]<h5 id="facet-holding-libraries">Holding libraries</h5>[% END %]
[% END %]
[% FOREACH facet IN facets_loo.facets %]
[% IF facets_loo.type_label_CollectionCodes %][% SET facet.facet_label_value = AuthorisedValues.GetByCode('CCODE',facet.facet_label_value,1) || facet.facet_label_value %][% END %]
+ [% IF facets_loo.type_label_Language %][% SET facet.facet_label_value = Languages.GetByISOCode(lang,facet.facet_label_value) || facet.facet_label_value %][% END %]
<li>
[% IF facet.active %]
[% local_url = BLOCK %][% url | $raw %][% "&nolimit=" _ facet.type_link_value _ ":" _ facet.facet_link_value | url %][% END %]
use Modern::Perl;
-use Test::More tests => 17;
+use Test::More tests => 18;
use List::Util qw(first);
use Data::Dumper;
use Test::Warn;
my $LangRfc4646 = $sth->fetchall_arrayref({});
is(scalar(@$LangRfc4646),scalar(@$DistinctLangRfc4646),"No unexpected language_rfc4646_to_iso639 duplicates.");
+
+my $i = 0;
+foreach my $pair (@$DistinctLangRfc4646){
+ $i++ if $pair->{rfc4646_subtag} eq C4::Languages::get_rfc4646_from_iso639( $pair->{iso639_2_code} );
+}
+is($i,scalar(@$DistinctLangRfc4646),"get_rfc4646_from_iso639 returns correct rfc for all iso values.");