X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=opac%2Fopac-authoritiesdetail.pl;h=6610dfda5c8e8662d985840b77b0a977183d3759;hb=465e58b5947ad345bff858c459434c3c665a6b96;hp=1c0a2ef5049fd7bdac86009fefb6b51a5a2c1890;hpb=1ab5cdfd44b6226374881bb957c4b743471d73e4;p=koha_gimpoz diff --git a/opac/opac-authoritiesdetail.pl b/opac/opac-authoritiesdetail.pl index 1c0a2ef504..6610dfda5c 100755 --- a/opac/opac-authoritiesdetail.pl +++ b/opac/opac-authoritiesdetail.pl @@ -13,9 +13,9 @@ # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR # A PARTICULAR PURPOSE. See the GNU General Public License for more details. # -# You should have received a copy of the GNU General Public License along with -# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place, -# Suite 330, Boston, MA 02111-1307 USA +# You should have received a copy of the GNU General Public License along +# with Koha; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. =head1 NAME @@ -23,6 +23,7 @@ opac-authoritiesdetail.pl : script to show an authority in MARC format =head1 SYNOPSIS +=cut =head1 DESCRIPTION @@ -33,17 +34,15 @@ parameters tables. =head1 FUNCTIONS -=over 2 - =cut use strict; -require Exporter; +use warnings; + use C4::AuthoritiesMarc; use C4::Auth; use C4::Context; use C4::Output; -use C4::Interface::CGI::Output; use CGI; use MARC::Record; use C4::Koha; @@ -54,8 +53,8 @@ my $query = new CGI; my $dbh = C4::Context->dbh; my $authid = $query->param('authid'); -my $authtypecode = &AUTHfind_authtypecode( $authid ); -my $tagslib = &AUTHgettagslib( 1, $authtypecode ); +my $authtypecode = &GetAuthTypeCode( $authid ); +my $tagslib = &GetTagsLabels( 1, $authtypecode ); # open template my ( $template, $loggedinuser, $cookie ) = get_template_and_user( @@ -63,49 +62,40 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( template_name => "opac-authoritiesdetail.tmpl", query => $query, type => "opac", - authnotrequired => 1, + authnotrequired => ( C4::Context->preference("OpacPublic") ? 1 : 0 ), debug => 1, } ); my $record; -if ( C4::Context->preference("AuthDisplayHierarchy") ) { - my $trees = BuildUnimarcHierarchies($authid); - - # warn "trees :$trees"; - my @trees = split /;/, $trees; - push @trees, $trees unless (@trees); - my @loophierarchies; - foreach my $tree (@trees) { - - # warn "tree :$tree"; - - my @tree = split /,/, $tree; - push @tree, $tree unless (@tree); - my $cnt = 0; - my @loophierarchy; - foreach my $element (@tree) { - - # warn "tree :$element"; - my %cell; - my $elementdata = AUTHgetauthority( $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, - ); +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 $cell; + 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 = AUTHgetauthority( $authid ); + $record = GetAuthority( $authid ); } -my $count = AUTHcount_usage($authid); +my $count = CountUsage($authid); # find the marc field/subfield used in biblio by this authority my $sth = @@ -130,6 +120,9 @@ my @fields = $record->fields(); foreach my $field (@fields) { my @subfields_data; + # skip UNIMARC fields <200, they are useless for a patron + next if C4::Context->preference('MarcFlavour') eq 'UNIMARC' && $field->tag() <200; + # if tag <10, there's no subfield, use the "@" trick if ( $field->tag() < 10 ) { next if ( $tagslib->{ $field->tag() }->{'@'}->{hidden} ); @@ -147,6 +140,8 @@ foreach my $field (@fields) { for my $i ( 0 .. $#subf ) { $subf[$i][0] = "@" unless $subf[$i][0]; next if ( $tagslib->{ $field->tag() }->{ $subf[$i][0] }->{hidden} ); + # skip useless subfields (for patrons) + next if $subf[$i][0] =~ /7|8|9/; my %subfield_data; $subfield_data{marc_lib} = $tagslib->{ $field->tag() }->{ $subf[$i][0] }->{lib}; @@ -165,23 +160,24 @@ foreach my $field (@fields) { if ( $#subfields_data >= 0 ) { my %tag_data; $tag_data{tag} = - $field->tag() . ' -' . $tagslib->{ $field->tag() }->{lib}; + $field->tag() + . ' ' + . C4::Koha::display_marc_indicators($field) + . ' - ' . $tagslib->{ $field->tag() }->{lib}; $tag_data{subfield} = \@subfields_data; push( @loop_data, \%tag_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, +$template->param( "Tab0XX" => \@loop_data ); + +my $authtypes = getauthtypes(); +my @authtypesloop = (); +foreach my $thisauthtype ( keys %{$authtypes} ) { + push @authtypesloop, + { value => $thisauthtype, + selected => $thisauthtype eq $authtypecode, authtypetext => $authtypes->{$thisauthtype}{'authtypetext'}, - ); - push @authtypesloop, \%row; + }; } $template->param(