X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=authorities%2Fdetail.pl;h=64029615b51eaffd616530cbb8339fc401e47b2a;hb=27edb618dd604e0a718f43e98ed97255f72eb515;hp=59273c1498795ef5e78a0cc4a1577f03aa4bc84c;hpb=ef8171ba425f766b67d9e139194b6a8d570e301e;p=koha_fer diff --git a/authorities/detail.pl b/authorities/detail.pl index 59273c1498..64029615b5 100755 --- a/authorities/detail.pl +++ b/authorities/detail.pl @@ -50,7 +50,7 @@ use C4::Koha; our ($tagslib); -sub build_tabs ($$$$$) { +sub build_tabs { my ( $template, $record, $dbh, $encoding,$input ) = @_; # fill arrays @@ -106,7 +106,7 @@ sub build_tabs ($$$$$) { my @subf=$field->subfields; # loop through each subfield for my $i (0..$#subf) { - $subf[$i][0] = "@" unless $subf[$i][0]; + $subf[$i][0] = "@" unless defined $subf[$i][0]; next if ( $tagslib->{ $field->tag() }->{ $subf[$i][0] }->{tab} @@ -172,38 +172,37 @@ my ($template, $loggedinuser, $cookie) my $authid = $query->param('authid'); +my $authtypecode = GetAuthTypeCode($authid); +$tagslib = &GetTagsLabels(1,$authtypecode); +# Build list of authtypes for showing them +my $authtypes = getauthtypes; +my @authtypesloop; -# Using default authtypecode, so all fields are seen -my $authtypecode = ''; -$tagslib = &GetTagsLabels(1,$authtypecode); +foreach my $thisauthtype (sort { $authtypes->{$b} cmp $authtypes->{$a} } keys %$authtypes) { + my %row =(value => $thisauthtype, + selected => $thisauthtype eq $authtypecode, + authtypetext => $authtypes->{$thisauthtype}{'authtypetext'}, + ); + push @authtypesloop, \%row; +} + +my $record=GetAuthority($authid); + +if (not defined $record) { + # authid invalid + $template->param ( errauthid => $authid, + unknownauthid => 1, + authtypesloop => \@authtypesloop ); + output_html_with_http_headers $query, $cookie, $template->output; + exit; +} -my $record; if (C4::Context->preference("AuthDisplayHierarchy")){ - my $trees=BuildUnimarcHierarchies($authid); - my @trees = split /;/,$trees ; - push @trees,$trees unless (@trees); - my @loophierarchies; - foreach my $tree (@trees){ - my @tree=split /,/,$tree; - push @tree,$tree unless (@tree); - my $cnt=0; - my @loophierarchy; - foreach my $element (@tree){ - my $elementdata = GetAuthority($element); - $record= $elementdata if ($authid==$element); - push @loophierarchy, BuildUnimarcHierarchy($elementdata,"child".$cnt, $authid); - $cnt++; - } - push @loophierarchies, { 'loopelement' =>\@loophierarchy}; - } - $template->param( - 'displayhierarchy' =>C4::Context->preference("AuthDisplayHierarchy"), - 'loophierarchies' =>\@loophierarchies, - ); -} else { - $record=GetAuthority($authid); + $template->{VARS}->{'displayhierarchy'} = C4::Context->preference("AuthDisplayHierarchy"); + $template->{VARS}->{'loophierarchies'} = GenerateHierarchy($authid); } + my $count = CountUsage($authid); # find the marc field/subfield used in biblio by this authority @@ -215,24 +214,7 @@ while (my ($tagfield) = $sth->fetchrow) { } chop $biblio_fields; - -# fill arrays -my @loop_data =(); -my $tag; -# loop through each tab 0 through 9 -# for (my $tabloop = 0; $tabloop<=10;$tabloop++) { -# loop through each tag - build_tabs ($template, $record, $dbh,"",$query); - -my $authtypes = getauthtypes; -my @authtypesloop; -foreach my $thisauthtype (sort { $authtypes->{$b} cmp $authtypes->{$a} } keys %$authtypes) { - my %row =(value => $thisauthtype, - selected => $thisauthtype eq $authtypecode, - authtypetext => $authtypes->{$thisauthtype}{'authtypetext'}, - ); - push @authtypesloop, \%row; -} +build_tabs ($template, $record, $dbh,"",$query); $template->param(authid => $authid, count => $count, @@ -240,5 +222,7 @@ $template->param(authid => $authid, authtypetext => $authtypes->{$authtypecode}{'authtypetext'}, authtypesloop => \@authtypesloop, ); + +$template->{VARS}->{marcflavour} = C4::Context->preference("marcflavour"); output_html_with_http_headers $query, $cookie, $template->output;