-##Only attempt to fill the template if we actually received a MARC record
-if ($xmlhash){
-my ($isbntag,$isbnsub)=MARCfind_marc_from_kohafield("isbn","biblios");
-my $biblio=$xmlhash->{'datafield'};
-my $controlfields=$xmlhash->{'controlfield'};
-my $leader=$xmlhash->{'leader'};
-for (my $tabloop = 0; $tabloop<10;$tabloop++) {
-# loop through each tag
- my @loop_data =();
- my @subfields_data;
-
- # deal with leader
- unless (($tagslib->{'000'}->{'@'}->{tab} ne $tabloop) || (substr($tagslib->{'000'}->{'@'}->{hidden},1,1)>0)) {
-
- my %subfield_data;
- $subfield_data{marc_value}=$leader->[0] ;
- push(@subfields_data, \%subfield_data);
- my %tag_data;
- $tag_data{tag}='000 -'. $tagslib->{'000'}->{lib};
- my @tmp = @subfields_data;
- $tag_data{subfield} = \@tmp;
- push (@loop_data, \%tag_data);
- undef @subfields_data;
- }
- ##Controlfields
-
- foreach my $control (@$controlfields){
- my %subfield_data;
- my %tag_data;
- next if ($tagslib->{$control->{'tag'}}->{'@'}->{tab} ne $tabloop);
- next if (substr($tagslib->{$control->{'tag'}}->{'@'}->{hidden},1,1)>0);
- $subfield_data{marc_value}=$control->{'content'} ;
- push(@subfields_data, \%subfield_data);
- if (C4::Context->preference('hide_marc')) {
- $tag_data{tag}=$tagslib->{$control->{'tag'}}->{lib};
- } else {
- $tag_data{tag}=$control->{'tag'}.' -'. $tagslib->{$control->{'tag'}}->{lib};
- }
- my @tmp = @subfields_data;
- $tag_data{subfield} = \@tmp;
- push (@loop_data, \%tag_data);
- undef @subfields_data;
- }
- my $previoustag;
- my %datatags;
- my $i=0;
- foreach my $data (@$biblio){
- $datatags{$i++}=$data->{'tag'};
- foreach my $subfield ( $data->{'subfield'}){
- foreach my $code ( @$subfield){
- next if ($tagslib->{$data->{'tag'}}->{$code->{'code'}}->{tab} ne $tabloop);
- next if (substr($tagslib->{$data->{'tag'}}->{$code->{'code'}}->{hidden},1,1)>0);
- my %subfield_data;
- my $value=$code->{'content'};
- $subfield_data{marc_lib}=$tagslib->{$data->{'tag'}}->{$code->{'code'}}->{lib};
- $subfield_data{link}=$tagslib->{$data->{'tag'}}->{$code->{'code'}}->{link};
- if ($tagslib->{$data->{'tag'}}->{$code->{'code'}}->{isurl}) {
- $subfield_data{marc_value}="<a href=\"$value]\">$value</a>";
- } elsif ($data->{'tag'} eq $isbntag && $code->{'code'} eq $isbnsub) {
- $subfield_data{marc_value}=DisplayISBN($value);
- } else {
- if ($tagslib->{$data->{'tag'}}->{$code->{'code'}}->{authtypecode}) {
- my ($authtag,$authtagsub)=MARCfind_marc_from_kohafield("auth_authid","biblios");
- $subfield_data{authority}=XML_readline_onerecord($xmlhash,"","",$data->{'tag'},$authtagsub);
- }
- $subfield_data{marc_value}=get_authorised_value_desc($data->{'tag'}, $code->{'code'}, $value, '', $dbh);
- }
- $subfield_data{marc_subfield}=$code->{'code'};
- $subfield_data{marc_tag}=$data->{'tag'};
- push(@subfields_data, \%subfield_data);
- }### $code
-
-
- if ($#subfields_data==0) {
- # $subfields_data[0]->{marc_lib}='';
- # $subfields_data[0]->{marc_subfield}='';
- }
- if ($#subfields_data>=0) {
- my %tag_data;
- if (($datatags{$i} eq $datatags{$i-1}) && (C4::Context->preference('LabelMARCView') eq 'economical')) {
- $tag_data{tag}="";
- } else {
- if (C4::Context->preference('hide_marc')) {
- $tag_data{tag}=$tagslib->{$data->{'tag'}}->{lib};
- } else {
- $tag_data{tag}=$data->{'tag'}.' -'. $tagslib->{$data->{'tag'}}->{lib};
- }
- }
- my @tmp = @subfields_data;
- $tag_data{subfield} = \@tmp;
- push (@loop_data, \%tag_data);
- undef @subfields_data;
- }
- }### each $subfield
- }
-
- $template->param($tabloop."XX" =>\@loop_data);
+for ( my $tabloop = 0 ; $tabloop <= 10 ; $tabloop++ ) {
+
+ # loop through each tag
+ my @fields = $record->fields();
+ my @loop_data = ();
+ my @subfields_data;
+
+ # deal with leader
+ unless ( $tagslib->{'000'}->{'@'}->{tab} ne $tabloop )
+ { # or ($tagslib->{'000'}->{'@'}->{hidden} =~ /-7|-4|-3|-2|2|3|5|8/ )) {
+ my %subfield_data;
+ $subfield_data{marc_lib} = $tagslib->{'000'}->{'@'}->{lib};
+ $subfield_data{marc_value} = $record->leader();
+ $subfield_data{marc_subfield} = '@';
+ $subfield_data{marc_tag} = '000';
+ push( @subfields_data, \%subfield_data );
+ my %tag_data;
+ $tag_data{tag} = '000 -' . $tagslib->{'000'}->{lib};
+ my @tmp = @subfields_data;
+ $tag_data{subfield} = \@tmp;
+ push( @loop_data, \%tag_data );
+ undef @subfields_data;
+ }
+ @fields = $record->fields();
+ for ( my $x_i = 0 ; $x_i <= $#fields ; $x_i++ ) {
+
+ # if tag <10, there's no subfield, use the "@" trick
+ if ( $fields[$x_i]->tag() < 10 ) {
+ next
+ if (
+ $tagslib->{ $fields[$x_i]->tag() }->{'@'}->{tab} ne $tabloop );
+ next if ( $tagslib->{ $fields[$x_i]->tag() }->{'@'}->{hidden} =~ /-7|-4|-3|-2|2|3|5|8/);
+ my %subfield_data;
+ $subfield_data{marc_lib} =
+ $tagslib->{ $fields[$x_i]->tag() }->{'@'}->{lib};
+ $subfield_data{marc_value} = $fields[$x_i]->data();
+ $subfield_data{marc_subfield} = '@';
+ $subfield_data{marc_tag} = $fields[$x_i]->tag();
+ push( @subfields_data, \%subfield_data );
+ }
+ else {
+ my @subf = $fields[$x_i]->subfields;
+
+ # loop through each subfield
+ for my $i ( 0 .. $#subf ) {
+ $subf[$i][0] = "@" unless $subf[$i][0];
+ next
+ if (
+ $tagslib->{ $fields[$x_i]->tag() }->{ $subf[$i][0] }->{tab}
+ ne $tabloop );
+ next
+ if ( $tagslib->{ $fields[$x_i]->tag() }->{ $subf[$i][0] }
+ ->{hidden} =~ /-7|-4|-3|-2|2|3|5|8/);
+ my %subfield_data;
+ $subfield_data{short_desc} = $tagslib->{ $fields[$x_i]->tag() }->{ $subf[$i][0] }->{lib};
+ $subfield_data{long_desc} =
+ $tagslib->{ $fields[$x_i]->tag() }->{ $subf[$i][0] }->{lib};
+ $subfield_data{link} =
+ $tagslib->{ $fields[$x_i]->tag() }->{ $subf[$i][0] }->{link};
+
+# warn "tag : ".$tagslib->{$fields[$x_i]->tag()}." subfield :".$tagslib->{$fields[$x_i]->tag()}->{$subf[$i][0]}."lien koha? : "$subfield_data{link};
+ if ( $tagslib->{ $fields[$x_i]->tag() }->{ $subf[$i][0] }
+ ->{isurl} )
+ {
+ $subfield_data{marc_value} = $subf[$i][1];
+ $subfield_data{is_url} = 1;
+ }
+ elsif ( $tagslib->{ $fields[$x_i]->tag() }->{ $subf[$i][0] }
+ ->{kohafield} eq "biblioitems.isbn" )
+ {
+
+# warn " tag : ".$tagslib->{$fields[$x_i]->tag()}." subfield :".$tagslib->{$fields[$x_i]->tag()}->{$subf[$i][0]}. "ISBN : ".$subf[$i][1]."PosttraitementISBN :".DisplayISBN($subf[$i][1]);
+ $subfield_data{marc_value} = $subf[$i][1];
+ }
+ else {
+ if ( $tagslib->{ $fields[$x_i]->tag() }->{ $subf[$i][0] }
+ ->{authtypecode} )
+ {
+ $subfield_data{authority} = $fields[$x_i]->subfield(9);
+ }
+ $subfield_data{marc_value} =
+ GetAuthorisedValueDesc( $fields[$x_i]->tag(),
+ $subf[$i][0], $subf[$i][1], '', $tagslib) || $subf[$i][1];
+
+ }
+ $subfield_data{marc_subfield} = $subf[$i][0];
+ $subfield_data{marc_tag} = $fields[$x_i]->tag();
+ push( @subfields_data, \%subfield_data );
+ }
+ }
+ if ( $#subfields_data == 0 ) {
+ $subfields_data[0]->{marc_lib} = '';
+# $subfields_data[0]->{marc_subfield} = '';
+ }
+ if ( $#subfields_data >= 0) {
+ my %tag_data;
+ if ( $fields[$x_i]->tag() eq $fields[ $x_i - 1 ]->tag() && (C4::Context->preference('LabelMARCView') eq 'economical')) {
+ $tag_data{tag} = "";
+ }
+ else {
+ if ( C4::Context->preference('hide_marc') ) {
+ $tag_data{tag} = $tagslib->{ $fields[$x_i]->tag() }->{lib};
+ }
+ else {
+ $tag_data{tag} =
+ $fields[$x_i]->tag()
+ . ' '
+ . C4::Koha::display_marc_indicators($fields[$x_i])
+ . ' - '
+ . $tagslib->{ $fields[$x_i]->tag() }->{lib};
+ }
+ }
+ my @tmp = @subfields_data;
+ $tag_data{subfield} = \@tmp;
+ push( @loop_data, \%tag_data );
+ undef @subfields_data;
+ }
+ }
+ $template->param( "tab" . $tabloop . "XX" => \@loop_data );