X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;ds=sidebyside;f=cataloguing%2Fvalue_builder%2Funimarc_field_4XX.pl;h=75862cb67b8bc825b1c9f4c7898e4880460c2902;hb=86c08e63a25afa86c9051f070d819ddac675425d;hp=ddb654712c2b3ea11f9f80b695af83a555296af6;hpb=16f1fffdd1f5d1c97db0bf664f83496864b7e24d;p=koha.git diff --git a/cataloguing/value_builder/unimarc_field_4XX.pl b/cataloguing/value_builder/unimarc_field_4XX.pl index ddb654712c..75862cb67b 100755 --- a/cataloguing/value_builder/unimarc_field_4XX.pl +++ b/cataloguing/value_builder/unimarc_field_4XX.pl @@ -1,6 +1,6 @@ #!/usr/bin/perl -# Copyright 2000-2002 Katipo Communications +# Copyright Biblibre 2007 # # This file is part of Koha. # @@ -116,16 +116,19 @@ sub plugin { $subfield_value_a .= " " . $marcrecord->subfield( '700', "d" ) if $marcrecord->subfield( '700', 'd' ); $subfield_value_a .= - " (" . $marcrecord->subfield( '700', 'c' ) . " - " + " (" . $marcrecord->subfield( '700', 'c' ) if $marcrecord->subfield( '700', 'c' ); + $subfield_value_a .= " ; " + if $marcrecord->subfield( '700', 'c' ) + and $marcrecord->subfield( '700', 'f' ); $subfield_value_a .= " (" if ( $marcrecord->subfield( '700', 'f' ) and not( $marcrecord->subfield( '700', 'c' ) ) ); $subfield_value_a .= $marcrecord->subfield( '700', 'f' ) if ( $marcrecord->subfield( '700', 'f' ) ); $subfield_value_a .= ")" - if ( $marcrecord->subfield( '701', 'f' ) - or $marcrecord->subfield( '701', 'c' ) ); + if ( $marcrecord->subfield( '700', 'f' ) + or $marcrecord->subfield( '700', 'c' ) ); } elsif ( $marcrecord->field('702') ) { $subfield_value_a = $marcrecord->subfield( '702', 'a' ); @@ -134,8 +137,11 @@ sub plugin { $subfield_value_a .= " " . $marcrecord->subfield( '702', 'd' ) if $marcrecord->subfield( '702', 'd' ); $subfield_value_a .= - " (" . $marcrecord->subfield( '702', 'c' ) . "; " + " (" . $marcrecord->subfield( '702', 'c' ) if $marcrecord->subfield( '702', 'c' ); + $subfield_value_a .= " ; " + if $marcrecord->subfield( '702', 'c' ) + and $marcrecord->subfield( '702', 'f' ); $subfield_value_a .= " (" if $marcrecord->subfield( '702', 'f' ) and not $marcrecord->subfield( '702', 'c' ); @@ -193,7 +199,7 @@ sub plugin { " (" . $marcrecord->subfield( '712', 'f' ) . " - " if $marcrecord->subfield( '712', 'f' ); $subfield_value_a .= " (" - if $marcrecord->field( '712', "e" ) + if $marcrecord->subfield( '712', "e" ) and not $marcrecord->subfield( '712', 'f' ); $subfield_value_a .= $marcrecord->subfield( '712', 'e' ) if $marcrecord->subfield( '712', 'e' ); @@ -204,12 +210,14 @@ sub plugin { elsif ( $marcrecord->field('200') ) { $subfield_value_a = $marcrecord->subfield( '200', 'f' ); } - my $subfield_value_c = $marcrecord->field('210')->subfield("a") + my $subfield_value_c; + my $subfield_value_d; + my $subfield_value_e; + $subfield_value_c = $marcrecord->field('210')->subfield("a") if ( $marcrecord->field('210') ); - my $subfield_value_d = $marcrecord->field('210')->subfield("d") + $subfield_value_d = $marcrecord->field('210')->subfield("d") if ( $marcrecord->field('210') ); - - my $subfield_value_e = $marcrecord->field('205')->subfield("a") + $subfield_value_e = $marcrecord->field('205')->subfield("a") if ( $marcrecord->field('205') ); my $subfield_value_h; @@ -246,7 +254,8 @@ sub plugin { $subfield_value_i = $marcrecord->field('500')->subfield("i"); } - my $subfield_value_p = $marcrecord->field('215')->subfield("a") + my $subfield_value_p; + $subfield_value_p = $marcrecord->field('215')->subfield("a") if ( $marcrecord->field('215') ); my $subfield_value_t; @@ -266,8 +275,10 @@ sub plugin { $subfield_value_t = $marcrecord->field('500')->subfield("a"); } - my $subfield_value_u = $marcrecord->field('856')->subfield("u") - if ( $marcrecord->field('856') ); + my $subfield_value_u; + if ( $marcrecord->field('856') ) { + $subfield_value_u = $marcrecord->field('856')->subfield("u"); + } my $subfield_value_v; if ( ( $marcrecord->field('225') ) @@ -280,14 +291,17 @@ sub plugin { { $subfield_value_v = $marcrecord->field('200')->subfield("h"); } - my $subfield_value_x = $marcrecord->field('011')->subfield("a") - if ( + my $subfield_value_x; + if ( $marcrecord->field('011') and not( ( $marcrecord->field('011')->subfield("y") ) - or ( $marcrecord->field('011')->subfield("z") ) ) - ); - my $subfield_value_y = $marcrecord->field('013')->subfield("a") - if ( $marcrecord->field('013') ); + or ( $marcrecord->field('011')->subfield("z") ) ) ) { + $subfield_value_x = $marcrecord->field('011')->subfield("a"); + } + my $subfield_value_y; + if ( $marcrecord->field('013') ) { + $subfield_value_y = $marcrecord->field('013')->subfield("a"); + } if ( $marcrecord->field('010') ) { $subfield_value_y = $marcrecord->field('010')->subfield("a"); } @@ -333,7 +347,15 @@ sub plugin { my $startfrom = $query->param('startfrom'); my $resultsperpage = $query->param('resultsperpage') || 20; my $orderby; - $search = 'kw,wrdl='.$search.' and mc-itemtype='.$itype if $itype; + my $QParser; + $QParser = C4::Context->queryparser if (C4::Context->preference('UseQueryParser')); + my $op; + if ($QParser) { + $op = '&&'; + } else { + $op = 'and'; + } + $search = 'kw:'.$search." $op mc-itemtype:".$itype if $itype; my ( $errors, $results, $total_hits ) = SimpleSearch($search, $startfrom * $resultsperpage, $resultsperpage ); if (defined $errors ) { $results = []; @@ -371,7 +393,10 @@ sub plugin { my $record = MARC::Record::new_from_usmarc( $results->[$i] ); my $rechash = TransformMarcToKoha( $dbh, $record ); my $pos; - my $countitems = 1 if ( $rechash->{itemnumber} ); + my $countitems; + if ( $rechash->{itemnumber} ) { + $countitems=1; + } while ( index( $rechash->{itemnumber}, '|', $pos ) > 0 ) { $countitems += 1; $pos = index( $rechash->{itemnumber}, '|', $pos ) + 1; @@ -492,25 +517,7 @@ sub plugin { ); $sth->finish; - my @branchloop; - my @select_branch; - my %select_branches; - my $branches = GetBranches; - push @select_branch, ""; - $select_branches{''} = ""; - foreach my $thisbranch ( keys %$branches ) { - push @select_branch, $branches->{$thisbranch}->{'branchcode'}; - $select_branches{ $branches->{$thisbranch}->{'branchcode'} } = - $branches->{$thisbranch}->{'branchname'}; - } - my $CGIbranch = CGI::scrolling_list( - -name => 'value', - -values => \@select_branch, - -labels => \%select_branches, - -size => 1, - -multiple => 0 - ); - $sth->finish; + # To show list of branches please use GetBranchesLoop() and modify template my $req = $dbh->prepare( @@ -541,7 +548,6 @@ sub plugin { $template->param( #classlist => $classlist, CGIitemtype => $CGIitemtype, - CGIbranch => $CGIbranch, CGIPublisher => $CGIpublisher, itypeloop => \@itemtypes, index => $query->param('index'),