X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=authorities%2Fblinddetail-biblio-search.pl;h=b137f50e5b6b66464a26bce9f15575c151c33ef6;hb=529af6e044729156b9589775d35e6e46bda9a22a;hp=a87d09c9efdd65750d86f4d7f5d098c677413003;hpb=5e44e797eb9e685339971f17f1b76291b3b32c38;p=koha.git diff --git a/authorities/blinddetail-biblio-search.pl b/authorities/blinddetail-biblio-search.pl index a87d09c9ef..b137f50e5b 100755 --- a/authorities/blinddetail-biblio-search.pl +++ b/authorities/blinddetail-biblio-search.pl @@ -19,7 +19,7 @@ =head1 NAME -etail.pl : script to show an authority in MARC format +blinddetail-biblio-search.pl : script to show an authority in MARC format =head1 SYNOPSIS @@ -37,99 +37,83 @@ parameters tables. =cut - use strict; -require Exporter; + use C4::AuthoritiesMarc; use C4::Auth; use C4::Context; use C4::Output; -use C4::Interface::CGI::Output; use CGI; -use C4::Search; use MARC::Record; use C4::Koha; -use HTML::Template; -my $query=new CGI; +my $query = new CGI; -my $dbh=C4::Context->dbh; +my $dbh = C4::Context->dbh; -my $authid = $query->param('authid'); -my $index = $query->param('index'); -my $authtypecode = &AUTHfind_authtypecode($dbh,$authid); -my $tagslib = &AUTHgettagslib($dbh,1,$authtypecode); +my $authid = $query->param('authid'); +my $index = $query->param('index'); +my $tagid = $query->param('tagid'); +my $authtypecode = &GetAuthTypeCode($authid); +my $tagslib = &GetTagsLabels( 1, $authtypecode ); -my $auth_type = AUTHgetauth_type($authtypecode); -# warn "XX = ".$auth_type->{auth_tag_to_report}; +my $auth_type = GetAuthType($authtypecode); +my $record = GetAuthority($authid) if $authid; -my $record =AUTHgetauthority($dbh,$authid); # open template -my ($template, $loggedinuser, $cookie) - = get_template_and_user({template_name => "authorities/blinddetail-biblio-search.tmpl", - query => $query, - type => "intranet", - authnotrequired => 0, - flagsrequired => {catalogue => 1}, - debug => 1, - }); +my ( $template, $loggedinuser, $cookie ) = get_template_and_user( + { + template_name => "authorities/blinddetail-biblio-search.tmpl", + query => $query, + type => "intranet", + authnotrequired => 0, + flagsrequired => { editcatalogue => 1 }, + } +); # fill arrays -my @loop_data =(); my $tag; -my @loop_data =(); +my @loop_data = (); if ($authid) { - foreach my $field ($record->field($auth_type->{auth_tag_to_report})) { - my @subfields_data; - my @subf=$field->subfields; - # loop through each subfield - for my $i (0..$#subf) { - $subf[$i][0] = "@" unless $subf[$i][0]; - my %subfield_data; - $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); - } - } + foreach my $field ( $record->field( $auth_type->{auth_tag_to_report} ) ) { + my @subfields_data; + my @subf = $field->subfields; + + # loop through each subfield + my %result; + for my $i ( 0 .. $#subf ) { + $subf[$i][0] = "@" unless $subf[$i][0]; + $result{ $subf[$i][0] } .= $subf[$i][1] . "|"; + } + foreach ( keys %result ) { + my %subfield_data; + chop $result{$_}; + $subfield_data{marc_value} = $result{$_}; + $subfield_data{marc_subfield} = $_; + + # $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 ); + } + } } else { -# authid is empty => the user want to empty the entry. - my @subfields_data; - foreach my $subfield ('a'..'z') { - my %subfield_data; - $subfield_data{marc_value}=''; - $subfield_data{marc_subfield}=$subfield; - 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); -# } + # authid is empty => the user want to empty the entry. + $template->param( "clear" => 1 ); +# warn Data::Dumper::Dumper(\@loop_data); } -$template->param("0XX" =>\@loop_data); - -# my $authtypes = getauthtypes; -# my @authtypesloop; -# foreach my $thisauthtype (keys %$authtypes) { -# my $selected = 1 if $thisauthtype eq $authtypecode; -# my %row =(value => $thisauthtype, -# selected => $selected, -# authtypetext => $authtypes->{$thisauthtype}{'authtypetext'}, -# ); -# push @authtypesloop, \%row; -# } - -$template->param(authid => $authid?$authid:"", -# authtypesloop => \@authtypesloop, - index => $index); +$template->param( "0XX" => \@loop_data ); + +$template->param( + authid => $authid ? $authid : "", + index => $index, + tagid => $tagid, +); + output_html_with_http_headers $query, $cookie, $template->output;