|
Lines 73-79
sub shelfpage {
Link Here
|
| 73 |
my $itemoff = ( $query->param('itemoff') ? $query->param('itemoff') : 1 ); |
73 |
my $itemoff = ( $query->param('itemoff') ? $query->param('itemoff') : 1 ); |
| 74 |
my $displaymode = ( $query->param('display') ? $query->param('display') : 'publicshelves' ); |
74 |
my $displaymode = ( $query->param('display') ? $query->param('display') : 'publicshelves' ); |
| 75 |
my ( $shelflimit, $shelfoffset, $shelveslimit, $shelvesoffset ); |
75 |
my ( $shelflimit, $shelfoffset, $shelveslimit, $shelvesoffset ); |
| 76 |
my $marcflavour = C4::Context->preference("marcflavour"); |
|
|
| 77 |
|
76 |
|
| 78 |
# get biblionumbers stored in the cart |
77 |
# get biblionumbers stored in the cart |
| 79 |
my @cart_list; |
78 |
my @cart_list; |
|
Lines 250-256
sub shelfpage {
Link Here
|
| 250 |
#check that the user can view the shelf |
249 |
#check that the user can view the shelf |
| 251 |
if ( ShelfPossibleAction( $loggedinuser, $shelfnumber, 'view' ) ) { |
250 |
if ( ShelfPossibleAction( $loggedinuser, $shelfnumber, 'view' ) ) { |
| 252 |
my $items; |
251 |
my $items; |
| 253 |
my $tag_quantity; |
|
|
| 254 |
my $sortfield = ( $sorton ? $sorton : 'title' ); |
252 |
my $sortfield = ( $sorton ? $sorton : 'title' ); |
| 255 |
$sortfield = $query->param('sort') || $sortfield; ## Passed in sorting overrides default sorting |
253 |
$sortfield = $query->param('sort') || $sortfield; ## Passed in sorting overrides default sorting |
| 256 |
my $direction = $query->param('direction') || 'asc'; |
254 |
my $direction = $query->param('direction') || 'asc'; |
|
Lines 258-302
sub shelfpage {
Link Here
|
| 258 |
sort => $sortfield, |
256 |
sort => $sortfield, |
| 259 |
direction => $direction, |
257 |
direction => $direction, |
| 260 |
); |
258 |
); |
| 261 |
( $items, $totitems ) = GetShelfContents( $shelfnumber, $shelflimit, $shelfoffset, $sortfield, $direction ); |
259 |
( $items, $totitems ) = shelf_contents({ |
| 262 |
for my $this_item (@$items) { |
260 |
shelfnumber => $shelfnumber, |
| 263 |
my $biblionumber = $this_item->{'biblionumber'}; |
261 |
shelflimit => $shelflimit, |
| 264 |
# Getting items infos for location display |
262 |
shelfoffset => $shelfoffset, |
| 265 |
my @items_infos = &GetItemsInfo( $this_item->{'biblionumber'}, "cn_sort" ); |
263 |
sortfield => $sortfield, |
| 266 |
my $record = GetMarcBiblio($biblionumber); |
264 |
direction => $direction, |
| 267 |
if (C4::Context->preference("OPACXSLTResultsDisplay") && $type eq 'opac') { |
265 |
type => $type, |
| 268 |
$this_item->{XSLTBloc} = XSLTParse4Display($biblionumber, $record, "OPACXSLTResultsDisplay", \@items_infos); |
266 |
cart_list => \@cart_list, |
| 269 |
} elsif (C4::Context->preference("XSLTResultsDisplay") && $type eq 'intranet') { |
267 |
}); |
| 270 |
$this_item->{XSLTBloc} = XSLTParse4Display($biblionumber, $record, "XSLTResultsDisplay", \@items_infos); |
|
|
| 271 |
} |
| 272 |
|
| 273 |
# the virtualshelfcontents table does not store these columns nor are they retrieved from the items |
| 274 |
# and itemtypes tables, so I'm commenting them out for now to quiet the log -crn |
| 275 |
#$this_item->{imageurl} = $imgdir."/".$itemtypes->{ $this_item->{itemtype} }->{'imageurl'}; |
| 276 |
#$this_item->{'description'} = $itemtypes->{ $this_item->{itemtype} }->{'description'}; |
| 277 |
$this_item->{'dateadded'} = format_date( $this_item->{'dateadded'} ); |
| 278 |
$this_item->{'imageurl'} = getitemtypeinfo( $this_item->{'itemtype'}, $type )->{'imageurl'}; |
| 279 |
$this_item->{'coins'} = GetCOinSBiblio( $record ); |
| 280 |
$this_item->{'subtitle'} = GetRecordValue('subtitle', $record, GetFrameworkCode($this_item->{'biblionumber'})); |
| 281 |
$this_item->{'normalized_upc'} = GetNormalizedUPC( $record,$marcflavour); |
| 282 |
$this_item->{'normalized_ean'} = GetNormalizedEAN( $record,$marcflavour); |
| 283 |
$this_item->{'normalized_oclc'} = GetNormalizedOCLCNumber($record,$marcflavour); |
| 284 |
$this_item->{'normalized_isbn'} = GetNormalizedISBN(undef,$record,$marcflavour); |
| 285 |
if(!defined($this_item->{'size'})) { $this_item->{'size'} = "" }; #TT has problems with size |
| 286 |
$this_item->{'itemsissued'} = CountItemsIssued( $this_item->{'biblionumber'} ); |
| 287 |
$this_item->{'ITEM_RESULTS'} = \@items_infos; |
| 288 |
if ( grep {$_ eq $biblionumber} @cart_list) { |
| 289 |
$this_item->{'incart'} = 1; |
| 290 |
} |
| 291 |
|
| 292 |
if (C4::Context->preference('TagsEnabled') and $tag_quantity = C4::Context->preference('TagsShowOnList')) { |
| 293 |
$this_item->{'TagLoop'} = get_tags({ |
| 294 |
biblionumber=>$this_item->{'biblionumber'}, approved=>1, 'sort'=>'-weight', |
| 295 |
limit=>$tag_quantity |
| 296 |
}); |
| 297 |
} |
| 298 |
|
| 299 |
} |
| 300 |
if($type eq 'intranet'){ |
268 |
if($type eq 'intranet'){ |
| 301 |
# Build drop-down list for 'Add To:' menu... |
269 |
# Build drop-down list for 'Add To:' menu... |
| 302 |
my ($totalref, $pubshelves, $barshelves)= |
270 |
my ($totalref, $pubshelves, $barshelves)= |
|
Lines 487-492
sub shelfpage {
Link Here
|
| 487 |
output_html_with_http_headers $query, $cookie, $template->output; |
455 |
output_html_with_http_headers $query, $cookie, $template->output; |
| 488 |
} |
456 |
} |
| 489 |
|
457 |
|
|
|
458 |
sub shelf_contents { |
| 459 |
my ( $params ) = @_; |
| 460 |
my $shelfnumber = $params->{shelfnumber}; |
| 461 |
my $shelflimit = $params->{shelflimit}; |
| 462 |
my $shelfoffset = $params->{shelfoffset}; |
| 463 |
my $sortfield = $params->{sortfield}; |
| 464 |
my $direction = $params->{direction}; |
| 465 |
my $type = $params->{type}; |
| 466 |
my $cart_list = $params->{cart_list}; |
| 467 |
|
| 468 |
my $marcflavour = C4::Context->preference("marcflavour"); |
| 469 |
my $tag_quantity = C4::Context->preference('TagsEnabled') |
| 470 |
? C4::Context->preference('TagsShowOnList') |
| 471 |
: undef; |
| 472 |
my ( $items, $totitems ) = GetShelfContents( $shelfnumber, $shelflimit, $shelfoffset, $sortfield, $direction ); |
| 473 |
for my $this_item (@$items) { |
| 474 |
my $biblionumber = $this_item->{'biblionumber'}; |
| 475 |
# Getting items infos for location display |
| 476 |
my @items_infos = &GetItemsInfo( $this_item->{'biblionumber'}, "cn_sort" ); |
| 477 |
my $record = GetMarcBiblio($biblionumber); |
| 478 |
if (C4::Context->preference("OPACXSLTResultsDisplay") && $type eq 'opac') { |
| 479 |
$this_item->{XSLTBloc} = XSLTParse4Display($biblionumber, $record, "OPACXSLTResultsDisplay", \@items_infos); |
| 480 |
} elsif (C4::Context->preference("XSLTResultsDisplay") && $type eq 'intranet') { |
| 481 |
$this_item->{XSLTBloc} = XSLTParse4Display($biblionumber, $record, "XSLTResultsDisplay", \@items_infos); |
| 482 |
} |
| 483 |
|
| 484 |
# the virtualshelfcontents table does not store these columns nor are they retrieved from the items |
| 485 |
# and itemtypes tables, so I'm commenting them out for now to quiet the log -crn |
| 486 |
#$this_item->{imageurl} = $imgdir."/".$itemtypes->{ $this_item->{itemtype} }->{'imageurl'}; |
| 487 |
#$this_item->{'description'} = $itemtypes->{ $this_item->{itemtype} }->{'description'}; |
| 488 |
$this_item->{'dateadded'} = format_date( $this_item->{'dateadded'} ); |
| 489 |
$this_item->{'imageurl'} = getitemtypeinfo( $this_item->{'itemtype'}, $type )->{'imageurl'}; |
| 490 |
$this_item->{'coins'} = GetCOinSBiblio( $record ); |
| 491 |
$this_item->{'subtitle'} = GetRecordValue('subtitle', $record, GetFrameworkCode($this_item->{'biblionumber'})); |
| 492 |
$this_item->{'normalized_upc'} = GetNormalizedUPC( $record,$marcflavour); |
| 493 |
$this_item->{'normalized_ean'} = GetNormalizedEAN( $record,$marcflavour); |
| 494 |
$this_item->{'normalized_oclc'} = GetNormalizedOCLCNumber($record,$marcflavour); |
| 495 |
$this_item->{'normalized_isbn'} = GetNormalizedISBN(undef,$record,$marcflavour); |
| 496 |
if(!defined($this_item->{'size'})) { $this_item->{'size'} = "" }; #TT has problems with size |
| 497 |
$this_item->{'itemsissued'} = CountItemsIssued( $this_item->{'biblionumber'} ); |
| 498 |
$this_item->{'ITEM_RESULTS'} = \@items_infos; |
| 499 |
if ( grep {$_ eq $biblionumber} @$cart_list) { |
| 500 |
$this_item->{'incart'} = 1; |
| 501 |
} |
| 502 |
|
| 503 |
if ($tag_quantity) { |
| 504 |
$this_item->{'TagLoop'} = get_tags({ |
| 505 |
biblionumber=>$this_item->{'biblionumber'}, approved=>1, 'sort'=>'-weight', |
| 506 |
limit=>$tag_quantity |
| 507 |
}); |
| 508 |
} |
| 509 |
} |
| 510 |
return ( $items, $totitems ); |
| 511 |
} |
| 512 |
|
| 490 |
1; |
513 |
1; |
| 491 |
__END__ |
514 |
__END__ |
| 492 |
|
515 |
|