|
Lines 271-324
for ( my $tabloop = 0 ; $tabloop <= 9 ; $tabloop++ ) {
Link Here
|
| 271 |
$template->param( "tab" . $tabloop . "XX" => \@loop_data ); |
271 |
$template->param( "tab" . $tabloop . "XX" => \@loop_data ); |
| 272 |
} |
272 |
} |
| 273 |
|
273 |
|
| 274 |
# now, build item tab ! |
274 |
# Now, build item tab! |
| 275 |
# the main difference is that datas are in lines and not in columns : thus, we build the <th> first, then the values... |
275 |
# Data is in rows (one per item) not columns: build headers (%witness) and row data (@item_loop). |
| 276 |
# loop through each tag |
|
|
| 277 |
# warning : we may have different number of columns in each row. Thus, we first build a hash, complete it if necessary |
| 278 |
# then construct template. |
| 279 |
# $record has already had all the item fields filtered above. |
| 280 |
$items->reset(); |
276 |
$items->reset(); |
| 281 |
my @fields = map { $_->as_marc_field } $items->as_list; |
277 |
my @fields = map { $_->as_marc_field } $items->as_list; |
| 282 |
my %witness; #---- stores the list of subfields used at least once, with the "meaning" of the code |
278 |
my $item_tag = $fields[0] ? $fields[0]->tag() : undef; |
|
|
279 |
my $item_tagslib = $item_tag ? $tagslib->{$item_tag} : {}; |
| 280 |
my %witness; |
| 283 |
my @item_subfield_codes; |
281 |
my @item_subfield_codes; |
| 284 |
my @item_loop; |
282 |
my @item_loop; |
|
|
283 |
|
| 284 |
my %date_fields = map { $_ => 1 } |
| 285 |
qw( items.dateaccessioned items.onloan items.datelastseen items.datelastborrowed items.replacementpricedate ); |
| 286 |
|
| 285 |
foreach my $field (@fields) { |
287 |
foreach my $field (@fields) { |
| 286 |
next if ( $field->tag() < 10 ); |
|
|
| 287 |
my @subf = $field->subfields; |
| 288 |
my $item; |
288 |
my $item; |
| 289 |
|
289 |
|
| 290 |
# loop through each subfield |
290 |
for my $subf ( $field->subfields ) { |
| 291 |
for my $i ( 0 .. $#subf ) { |
291 |
my ( $code, $value ) = @$subf; |
| 292 |
my $sf_def = $tagslib->{ $field->tag() }->{ $subf[$i][0] }; |
292 |
my $sf_def = $item_tagslib->{$code}; |
| 293 |
next if ( ( $sf_def->{tab} || 0 ) != 10 ); |
|
|
| 294 |
next if ( ( $sf_def->{hidden} || 0 ) > 0 ); |
293 |
next if ( ( $sf_def->{hidden} || 0 ) > 0 ); |
| 295 |
|
294 |
|
| 296 |
push @item_subfield_codes, $subf[$i][0]; |
295 |
push @item_subfield_codes, $code; |
| 297 |
$witness{ $subf[$i][0] } = $sf_def->{lib}; |
296 |
$witness{$code} = $sf_def->{lib}; |
| 298 |
|
297 |
|
| 299 |
# Allow repeatables (BZ 13574) |
298 |
# Allow repeatables (BZ 13574) |
| 300 |
if ( $item->{ $subf[$i][0] } ) { |
299 |
$item->{$code} = ( $item->{$code} ) ? $item->{$code} . ' | ' : q{}; |
| 301 |
$item->{ $subf[$i][0] } .= ' | '; |
|
|
| 302 |
} else { |
| 303 |
$item->{ $subf[$i][0] } = q{}; |
| 304 |
} |
| 305 |
|
300 |
|
| 306 |
if ( $sf_def->{isurl} ) { |
301 |
if ( $sf_def->{isurl} ) { |
| 307 |
$item->{ $subf[$i][0] } .= "<a href=\"$subf[$i][1]\">$subf[$i][1]</a>"; |
302 |
$item->{$code} .= "<a href=\"$value\">$value</a>"; |
| 308 |
} elsif ( $sf_def->{kohafield} eq "biblioitems.isbn" ) { |
303 |
} elsif ( $sf_def->{kohafield} eq "biblioitems.isbn" ) { |
| 309 |
$item->{ $subf[$i][0] } .= $subf[$i][1]; |
304 |
$item->{$code} .= $value; |
| 310 |
} else { |
305 |
} else { |
| 311 |
$item->{ $subf[$i][0] } .= GetAuthorisedValueDesc( |
306 |
$item->{$code} .= GetAuthorisedValueDesc( $item_tag, $code, $value, '', $tagslib, '', 'opac' ) // q{}; |
| 312 |
$field->tag(), $subf[$i][0], |
|
|
| 313 |
$subf[$i][1], '', $tagslib, '', 'opac' |
| 314 |
) // q{}; |
| 315 |
} |
307 |
} |
| 316 |
|
308 |
|
| 317 |
my $kohafield = $tagslib->{ $field->tag() }->{ $subf[$i][0] }->{kohafield}; |
309 |
$item->{$code} = output_pref( { str => $item->{$code}, dateonly => 1 } ) |
| 318 |
$item->{ $subf[$i][0] } = output_pref( { str => $item->{ $subf[$i][0] }, dateonly => 1 } ) |
310 |
if $date_fields{ $sf_def->{kohafield} // q{} }; |
| 319 |
if grep { $kohafield eq $_ } |
|
|
| 320 |
qw( items.dateaccessioned items.onloan items.datelastseen items.datelastborrowed items.replacementpricedate ); |
| 321 |
|
| 322 |
} |
311 |
} |
| 323 |
push @item_loop, $item if $item; |
312 |
push @item_loop, $item if $item; |
| 324 |
} |
313 |
} |
| 325 |
- |
|
|