Hi
Today I wrote:
Environment: Debian GNU/Linux 8 with Koha 16.11.04 (package installation)
Our Koha catalogue contains MARC field 385 $a with content e. g. "KG", linked to category "Lesekategorie" containing authorized values for the target audience, e. g. value "KG" (description for staff client and OPAC is: "Kindergarten"). Instead of "KG" the OPAC shows "Kindergarten" as expected.
Now I have recently added a new facet for MARC field 385 $a and the facet does show - only instead of the description ("Kindergarten"), the facet shows the authorized value "KG". How can it be achieved to show the description in the facet?
As I see it is actually possible to show the description because the authorized values for standard category "LOC" are properly showing the descriptions. I tried to find out how this works in file "opac-facets.inc" but without success. Can anyone please give me a hint?
For the record:
Jens Weber found the following code in file "/usr/share/koha/lib/C4/Search.pm":
# also, if it's a location code, use the name instead of the code if ( $link_value =~ /location/ ) { # TODO Retrieve all authorised values at once, instead of 1 query
Hi Michael, Thanks for sharing your findings about resolving an authorised value while using MARC field 385 $a (Audience term) as a facet. As you write, such code changes will have to be maintained with every update. Since there are monthly releases, including bug fixes and sometimes security fixes, maintaining such code can be a bit cumbersome. IMO it would be a good idea to open a Bug (enhancement) in https://bugs.koha-community.org That would be a good starting point to have a more generic solution inside the Koha code base. Kind regards Marc www.koha-support.ch Am 07.04.2017 um 00:12 schrieb Michael Kuhn: per entry
my $av = Koha::AuthorisedValues->search({ category => 'LOC', authorised_value => $one_facet }); $facet_label_value = $av->count ? $av->next->opac_description : ''; }
I copied this section and adapted it as follows:
# also, if it's a lesekategorie code, use the name instead of the code if ( $link_value =~ /lesekategorie/ ) { my $av = Koha::AuthorisedValues->search({ category => 'Lesekategorie', authorised_value => $one_facet }); $facet_label_value = $av->count ? $av->next->opac_description : ''; }
After a restart of Koha (including Plack) now the created facet actually shows the description ("Kindergarten") instead of the authorized value "KG". Great!
Of course this change will have to be reconfigured with every update but I guess it makes no sense to include this in the official Koha code...
Best wishes: Michael -- Geschäftsführer · Diplombibliothekar BBS, Informatiker eidg. Fachausweis Admin Kuhn GmbH · Pappelstrasse 20 · 4123 Allschwil · Schweiz T 0041 (0)61 261 55 61 · E mik@adminkuhn.ch · W www.adminkuhn.ch