Bug 10938: Item columns displayed in random order - OPAC
Same as before for the OPAC. Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com> Good result, no errors Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
This commit is contained in:
parent
5b554d1a86
commit
5a02cf9b48
2 changed files with 29 additions and 45 deletions
|
@ -136,15 +136,15 @@
|
|||
<table id="items" class="table table-bordered table-condensed table-striped">
|
||||
<caption>Holdings</caption>
|
||||
<tr>
|
||||
[% FOREACH item_header_loo IN item_header_loop %]
|
||||
<th>
|
||||
[% item_header_loo.header_value %]
|
||||
</th>
|
||||
[% FOREACH header IN item_header_loop %]
|
||||
<th>[% header %]</th>
|
||||
[% END %]
|
||||
</tr>
|
||||
[% FOREACH item_loo IN item_loop %]
|
||||
[% FOREACH item IN item_loop %]
|
||||
<tr>
|
||||
[% item_loo.item_value %]
|
||||
[% FOREACH sf_code IN item_subfield_codes %]
|
||||
<td>[% item.$sf_code %]</td>
|
||||
[% END %]
|
||||
</tr>
|
||||
[% END %]
|
||||
</table>
|
||||
|
|
|
@ -56,7 +56,7 @@ use C4::Reserves;
|
|||
use C4::Members;
|
||||
use C4::Acquisition;
|
||||
use C4::Koha;
|
||||
use List::MoreUtils qw/any/;
|
||||
use List::MoreUtils qw( any uniq );
|
||||
|
||||
my $query = new CGI;
|
||||
|
||||
|
@ -253,67 +253,50 @@ for ( my $tabloop = 0 ; $tabloop <= 9 ; $tabloop++ ) {
|
|||
my @fields = $record->fields();
|
||||
my %witness
|
||||
; #---- stores the list of subfields used at least once, with the "meaning" of the code
|
||||
my @big_array;
|
||||
my @item_subfield_codes;
|
||||
my @item_loop;
|
||||
foreach my $field (@fields) {
|
||||
next if ( $field->tag() < 10 );
|
||||
next if ( ( $field->tag() eq $tag_itemnumber ) &&
|
||||
( any { $field->subfield($subtag_itemnumber) eq $_ }
|
||||
@items2hide) );
|
||||
my @subf = $field->subfields;
|
||||
my %this_row;
|
||||
my $item;
|
||||
|
||||
# loop through each subfield
|
||||
for my $i ( 0 .. $#subf ) {
|
||||
my $sf_def = $tagslib->{ $field->tag() }->{ $subf[$i][0] };
|
||||
next if ( ($sf_def->{tab}||0) != 10 );
|
||||
next if ( ($sf_def->{hidden}||0) > 0 );
|
||||
push @item_subfield_codes, $subf[$i][0];
|
||||
$witness{ $subf[$i][0] } = $sf_def->{lib};
|
||||
|
||||
if ( $sf_def->{isurl} ) {
|
||||
$this_row{ $subf[$i][0] } = "<a href=\"$subf[$i][1]\">$subf[$i][1]</a>";
|
||||
$item->{ $subf[$i][0] } = "<a href=\"$subf[$i][1]\">$subf[$i][1]</a>";
|
||||
}
|
||||
elsif ( $sf_def->{kohafield} eq "biblioitems.isbn" ) {
|
||||
$this_row{ $subf[$i][0] } = $subf[$i][1];
|
||||
$item->{ $subf[$i][0] } = $subf[$i][1];
|
||||
}
|
||||
else {
|
||||
$this_row{ $subf[$i][0] } = GetAuthorisedValueDesc( $field->tag(), $subf[$i][0],
|
||||
$item->{ $subf[$i][0] } = GetAuthorisedValueDesc( $field->tag(), $subf[$i][0],
|
||||
$subf[$i][1], '', $tagslib, '', 'opac' );
|
||||
}
|
||||
}
|
||||
if (%this_row) {
|
||||
push( @big_array, \%this_row );
|
||||
}
|
||||
push @item_loop, $item if $item;
|
||||
}
|
||||
my ( $holdingbrtagf, $holdingbrtagsubf ) =
|
||||
&GetMarcFromKohaField( "items.holdingbranch", $itemtype );
|
||||
@big_array =
|
||||
sort { ($a->{$holdingbrtagsubf}||'') cmp ($b->{$holdingbrtagsubf}||'') } @big_array;
|
||||
@item_loop =
|
||||
sort { ($a->{$holdingbrtagsubf}||'') cmp ($b->{$holdingbrtagsubf}||'') } @item_loop;
|
||||
|
||||
#fill big_row with missing datas
|
||||
foreach my $subfield_code ( keys(%witness) ) {
|
||||
for ( my $i = 0 ; $i <= $#big_array ; $i++ ) {
|
||||
$big_array[$i]{$subfield_code} = " "
|
||||
unless ( $big_array[$i]{$subfield_code} );
|
||||
}
|
||||
}
|
||||
|
||||
# now, construct template !
|
||||
my @item_value_loop;
|
||||
my @header_value_loop;
|
||||
for ( my $i = 0 ; $i <= $#big_array ; $i++ ) {
|
||||
my $items_data;
|
||||
foreach my $subfield_code ( keys(%witness) ) {
|
||||
$items_data .= "<td>" . $big_array[$i]{$subfield_code} . "</td>";
|
||||
}
|
||||
my %row_data;
|
||||
$row_data{item_value} = $items_data;
|
||||
push( @item_value_loop, \%row_data );
|
||||
}
|
||||
|
||||
foreach my $subfield_code ( keys(%witness) ) {
|
||||
my %header_value;
|
||||
$header_value{header_value} = $witness{$subfield_code};
|
||||
push( @header_value_loop, \%header_value );
|
||||
@item_subfield_codes = uniq @item_subfield_codes;
|
||||
# fill item info
|
||||
my @item_header_loop;
|
||||
for my $subfield_code ( @item_subfield_codes ) {
|
||||
push @item_header_loop, $witness{$subfield_code};
|
||||
for my $item_data ( @item_loop ) {
|
||||
$item_data->{$subfield_code} ||= " "
|
||||
}
|
||||
}
|
||||
|
||||
if(C4::Context->preference("ISBD")) {
|
||||
|
@ -346,9 +329,10 @@ if (my $search_for_title = C4::Context->preference('OPACSearchForTitleIn')){
|
|||
}
|
||||
|
||||
$template->param(
|
||||
item_loop => \@item_value_loop,
|
||||
item_header_loop => \@header_value_loop,
|
||||
biblionumber => $biblionumber,
|
||||
item_loop => \@item_loop,
|
||||
item_header_loop => \@item_header_loop,
|
||||
item_subfield_codes => \@item_subfield_codes,
|
||||
biblionumber => $biblionumber,
|
||||
);
|
||||
|
||||
output_html_with_http_headers $query, $cookie, $template->output;
|
||||
|
|
Loading…
Reference in a new issue