[Koha-cvs] CVS: koha/authorities detail.pl,1.1,1.2

Paul POULAIN tipaul at users.sourceforge.net
Mon Nov 8 20:46:14 CET 2004


Update of /cvsroot/koha/koha/authorities
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12011/authorities

Modified Files:
	detail.pl 
Log Message:
adding links to jump to biblio using an authority

Index: detail.pl
===================================================================
RCS file: /cvsroot/koha/koha/authorities/detail.pl,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** detail.pl	10 Jun 2004 08:28:40 -0000	1.1
--- detail.pl	8 Nov 2004 19:46:11 -0000	1.2
***************
*** 63,66 ****
--- 63,77 ----
  
  my $record =AUTHgetauthority($dbh,$authid);
+ my $count = AUTHcount_usage($authid);
+ 
+ # find the marc field/subfield used in biblio by this authority
+ my $sth = $dbh->prepare("select distinct tagfield from marc_subfield_structure where authtypecode=?");
+ $sth->execute($authtypecode);
+ my $biblio_fields;
+ while (my ($tagfield) = $sth->fetchrow) {
+ 	$biblio_fields.= $tagfield."9,";
+ }
+ chop $biblio_fields;
+ 
  # open template
  my ($template, $loggedinuser, $cookie)
***************
*** 79,169 ****
  # for (my $tabloop = 0; $tabloop<=10;$tabloop++) {
  # loop through each tag
! 	my @fields = $record->fields();
! 	my @loop_data =();
! 	foreach my $field (@fields) {
! 			my @subfields_data;
! 		# if tag <10, there's no subfield, use the "@" trick
! 		if ($field->tag()<10) {
! # 			next if ($tagslib->{$field->tag()}->{'@'}->{tab}  ne $tabloop);
! 			next if ($tagslib->{$field->tag()}->{'@'}->{hidden});
  			my %subfield_data;
! 			$subfield_data{marc_lib}=$tagslib->{$field->tag()}->{'@'}->{lib};
! 			$subfield_data{marc_value}=$field->data();
! 			$subfield_data{marc_subfield}='@';
  			$subfield_data{marc_tag}=$field->tag();
  			push(@subfields_data, \%subfield_data);
- 		} else {
- 			my @subf=$field->subfields;
- 	# loop through each subfield
- 			for my $i (0..$#subf) {
- 				$subf[$i][0] = "@" unless $subf[$i][0];
- # 				next if ($tagslib->{$field->tag()}->{$subf[$i][0]}->{tab}  ne $tabloop);
- 				next if ($tagslib->{$field->tag()}->{$subf[$i][0]}->{hidden});
- 				my %subfield_data;
- 				$subfield_data{marc_lib}=$tagslib->{$field->tag()}->{$subf[$i][0]}->{lib};
- 				if ($tagslib->{$field->tag()}->{$subf[$i][0]}->{isurl}) {
- 					$subfield_data{marc_value}="<a href=\"$subf[$i][1]\">$subf[$i][1]</a>";
- 				} else {
- 					$subfield_data{marc_value}=$subf[$i][1];
- 				}
- 				$subfield_data{marc_subfield}=$subf[$i][0];
- 				$subfield_data{marc_tag}=$field->tag();
- 				push(@subfields_data, \%subfield_data);
- 			}
- 		}
- 		if ($#subfields_data>=0) {
- 			my %tag_data;
- 			$tag_data{tag}=$field->tag().' -'. $tagslib->{$field->tag()}->{lib};
- 			$tag_data{subfield} = \@subfields_data;
- 			push (@loop_data, \%tag_data);
  		}
  	}
! 	$template->param("0XX" =>\@loop_data);
! # }
! # now, build item tab !
! # the main difference is that datas are in lines and not in columns : thus, we build the <th> first, then the values...
! # loop through each tag
! # warning : we may have differents number of columns in each row. Thus, we first build a hash, complete it if necessary
! # then construct template.
! # my @fields = $record->fields();
! # my %witness; #---- stores the list of subfields used at least once, with the "meaning" of the code
! # my @big_array;
! # foreach my $field (@fields) {
! # 	next if ($field->tag()<10);
! # 	my @subf=$field->subfields;
! # 	my %this_row;
! # # loop through each subfield
! # 	for my $i (0..$#subf) {
! # 		next if ($tagslib->{$field->tag()}->{$subf[$i][0]}->{tab}  ne 10);
! # 		$witness{$subf[$i][0]} = $tagslib->{$field->tag()}->{$subf[$i][0]}->{lib};
! # 		$this_row{$subf[$i][0]} =$subf[$i][1];
! # 	}
! # 	if (%this_row) {
! # 		push(@big_array, \%this_row);
! # 	}
! # }
! # #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}="&nbsp;" 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);
! # }
  
  my $authtypes = getauthtypes;
--- 90,132 ----
  # for (my $tabloop = 0; $tabloop<=10;$tabloop++) {
  # loop through each tag
! my @fields = $record->fields();
! my @loop_data =();
! foreach my $field (@fields) {
! 		my @subfields_data;
! 	# if tag <10, there's no subfield, use the "@" trick
! 	if ($field->tag()<10) {
! 		next if ($tagslib->{$field->tag()}->{'@'}->{hidden});
! 		my %subfield_data;
! 		$subfield_data{marc_lib}=$tagslib->{$field->tag()}->{'@'}->{lib};
! 		$subfield_data{marc_value}=$field->data();
! 		$subfield_data{marc_subfield}='@';
! 		$subfield_data{marc_tag}=$field->tag();
! 		push(@subfields_data, \%subfield_data);
! 	} else {
! 		my @subf=$field->subfields;
! # loop through each subfield
! 		for my $i (0..$#subf) {
! 			$subf[$i][0] = "@" unless $subf[$i][0];
! 			next if ($tagslib->{$field->tag()}->{$subf[$i][0]}->{hidden});
  			my %subfield_data;
! 			$subfield_data{marc_lib}=$tagslib->{$field->tag()}->{$subf[$i][0]}->{lib};
! 			if ($tagslib->{$field->tag()}->{$subf[$i][0]}->{isurl}) {
! 				$subfield_data{marc_value}="<a href=\"$subf[$i][1]\">$subf[$i][1]</a>";
! 			} else {
! 				$subfield_data{marc_value}=$subf[$i][1];
! 			}
! 			$subfield_data{marc_subfield}=$subf[$i][0];
  			$subfield_data{marc_tag}=$field->tag();
  			push(@subfields_data, \%subfield_data);
  		}
  	}
! 	if ($#subfields_data>=0) {
! 		my %tag_data;
! 		$tag_data{tag}=$field->tag().' -'. $tagslib->{$field->tag()}->{lib};
! 		$tag_data{subfield} = \@subfields_data;
! 		push (@loop_data, \%tag_data);
! 	}
! }
! $template->param("0XX" =>\@loop_data);
  
  my $authtypes = getauthtypes;
***************
*** 179,182 ****
--- 142,147 ----
  
  $template->param(authid => $authid,
+ 				count => $count,
+ 				biblio_fields => $biblio_fields,
  				authtypesloop => \@authtypesloop);
  output_html_with_http_headers $query, $cookie, $template->output;





More information about the Koha-cvs mailing list