Bug 10073: Show ccode or location also if not bound to Authorized Values in XSLT
authorMarcel de Rooy <m.de.rooy@rijksmuseum.nl>
Thu, 18 Apr 2013 08:03:38 +0000 (10:03 +0200)
committerJared Camins-Esakov <jcamins@cpbibliography.com>
Fri, 26 Apr 2013 22:31:01 +0000 (18:31 -0400)
If you do not have ccode or location governed by authorized value
(you can release this default connection in the marc structure),
these item values are not passed through in the items section,
created by buildKohaItemsNamespace for XSLTParse4Display.

This simple patch checks if the authorized value hash on ccode or
location returns something and passes the original value in otherwise.

Test plan:
Temporarily disconnect ccode and location from authorized values
in MARC structure.
Edit an item, put some values in location and ccode.
Look at this record via opac search (XSLT enabled). Toggle the value of
OPACItemLocation to show ccode or location before call number.
Restore authorized values-connection when applicable.

Note: Since bug 9995 adjusts OPAC XSLT Results, it may be helpful
to apply these
patches when testing this.

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
This works as described for the XSLT result list.
The text is shown when OpacItemLocation is set to show collection
or location.

Note: Displaying location and collection without using authorised
values doesn't work in other places like the detail page item table.
So this will need more work to be fully functional.
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
C4/XSLT.pm

index 19ce2ab..8f24df9 100644 (file)
@@ -281,8 +281,8 @@ sub buildKohaItemsNamespace {
         }
         my $homebranch = $item->{homebranch}? xml_escape($branches->{$item->{homebranch}}->{'branchname'}):'';
         my $holdingbranch = $item->{holdingbranch}? xml_escape($branches->{$item->{holdingbranch}}->{'branchname'}):'';
-        $location = $item->{location}? xml_escape($shelflocations->{$item->{location}}):'';
-        $ccode = $item->{ccode}? xml_escape($ccodes->{$item->{ccode}}):'';
+        $location = $item->{location}? xml_escape($shelflocations->{$item->{location}}||$item->{location}):'';
+        $ccode = $item->{ccode}? xml_escape($ccodes->{$item->{ccode}}||$item->{ccode}):'';
         my $itemcallnumber = xml_escape($item->{itemcallnumber});
         $xml.= "<item><homebranch>$homebranch</homebranch>".
                 "<holdingbranch>$holdingbranch</holdingbranch>".