my $stylesheet;
+sub _get_best_default_xslt_filename {
+ my ($htdocs, $theme, $lang, $base_xslfile) = @_;
+
+ my @candidates = (
+ "$htdocs/$theme/$lang/xslt/${base_xslfile}", # exact match
+ "$htdocs/$theme/en/xslt/${base_xslfile}", # if not, preferred theme in English
+ "$htdocs/prog/$lang/xslt/${base_xslfile}", # if not, 'prog' theme in preferred language
+ "$htdocs/prog/en/xslt/${base_xslfile}", # otherwise, prog theme in English; should always
+ # exist
+ );
+ my $xslfilename;
+ foreach my $filename (@candidates) {
+ $xslfilename = $filename;
+ if (-f $filename) {
+ last; # we have a winner!
+ }
+ }
+ return $xslfilename;
+}
+
sub XSLTParse4Display {
my ( $biblionumber, $orig_record, $xslsyspref, $fixamps, $hidden_items ) = @_;
my $xslfilename = C4::Context->preference($xslsyspref);
$xslfile = C4::Context->preference('marcflavour') .
"slim2OPACResults.xsl";
}
- $xslfilename = "$htdocs/$theme/$lang/xslt/$xslfile";
- $xslfilename = "$htdocs/$theme/en/xslt/$xslfile" unless ( $lang ne 'en' && !-f $xslfilename );
- $xslfilename = "$htdocs/prog/$lang/xslt/$xslfile" unless ( !-f $xslfilename );
- $xslfilename = "$htdocs/prog/en/xslt/$xslfile" unless ( $lang ne 'en' && !-f $xslfilename );
+ $xslfilename = _get_best_default_xslt_filename($htdocs, $theme, $lang, $xslfile);
}
if ( $xslfilename =~ m/\{langcode\}/ ) {
UseAuthoritiesForTracings TraceSubjectSubdivisions
Display856uAsImage OPACDisplay856uAsImage
UseControlNumber IntranetBiblioDefaultView BiblioDefaultView
- singleBranchMode
- AlternateHoldingsField AlternateHoldingsSeparator / )
+ singleBranchMode OPACItemLocation DisplayIconsXSLT
+ AlternateHoldingsField AlternateHoldingsSeparator
+ TrackClicks / )
{
my $sp = C4::Context->preference( $syspref );
next unless defined($sp);
my %hi = map {$_ => 1} @$hidden_items;
@items = grep { !$hi{$_->{itemnumber}} } @items;
}
+
+ my $shelflocations = GetKohaAuthorisedValues('items.location',GetFrameworkCode($biblionumber), 'opac');
+ my $ccodes = GetKohaAuthorisedValues('items.ccode',GetFrameworkCode($biblionumber), 'opac');
+
my $branches = GetBranches();
my $itemtypes = GetItemTypes();
+ my $location = "";
+ my $ccode = "";
my $xml = '';
for my $item (@items) {
my $status;
my ( $transfertwhen, $transfertfrom, $transfertto ) = C4::Circulation::GetTransfers($item->{itemnumber});
- my ( $reservestatus, $reserveitem, undef ) = C4::Reserves::CheckReserves($item->{itemnumber});
+ my $reservestatus = C4::Reserves::GetReserveStatus( $item->{itemnumber} );
- if ( $itemtypes->{ $item->{itype} }->{notforloan} || $item->{notforloan} || $item->{onloan} || $item->{wthdrawn} || $item->{itemlost} || $item->{damaged} ||
+ if ( $itemtypes->{ $item->{itype} }->{notforloan} || $item->{notforloan} || $item->{onloan} || $item->{withdrawn} || $item->{itemlost} || $item->{damaged} ||
(defined $transfertwhen && $transfertwhen ne '') || $item->{itemnotforloan} || (defined $reservestatus && $reservestatus eq "Waiting") ){
if ( $item->{notforloan} < 0) {
$status = "On order";
if ($item->{onloan}) {
$status = "Checked out";
}
- if ( $item->{wthdrawn}) {
+ if ( $item->{withdrawn}) {
$status = "Withdrawn";
}
if ($item->{itemlost}) {
$status = "available";
}
my $homebranch = $item->{homebranch}? xml_escape($branches->{$item->{homebranch}}->{'branchname'}):'';
- my $itemcallnumber = xml_escape($item->{itemcallnumber});
+ my $holdingbranch = $item->{holdingbranch}? xml_escape($branches->{$item->{holdingbranch}}->{'branchname'}):'';
+ $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>".
+ "<location>$location</location>".
+ "<ccode>$ccode</ccode>".
"<status>$status</status>".
"<itemcallnumber>".$itemcallnumber."</itemcallnumber>"
. "</item>";