X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=authorities%2Fdetail.pl;h=64029615b51eaffd616530cbb8339fc401e47b2a;hb=9f6999bfdb12d2dd19c454a6b54a58a3f7a6490d;hp=f92e04b8b321380ffc265adb845e1c49e4ac27b1;hpb=a8222aeeb1169d7b1939d1e64c319a16e3846e8c;p=koha_fer diff --git a/authorities/detail.pl b/authorities/detail.pl index f92e04b8b3..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,37 +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; -my $authtypecode = &GetAuthTypeCode($authid); -$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 @@ -214,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, @@ -239,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;