|
Lines 17-25
package C4::AuthoritiesMarc;
Link Here
|
| 17 |
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
17 |
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
| 18 |
|
18 |
|
| 19 |
use strict; |
19 |
use strict; |
| 20 |
#use warnings; FIXME - Bug 2505 |
20 |
use warnings; |
| 21 |
use C4::Context; |
21 |
use C4::Context; |
| 22 |
use C4::Koha; |
|
|
| 23 |
use MARC::Record; |
22 |
use MARC::Record; |
| 24 |
use C4::Biblio; |
23 |
use C4::Biblio; |
| 25 |
use C4::Search; |
24 |
use C4::Search; |
|
Lines 41-47
BEGIN {
Link Here
|
| 41 |
&GetAuthType |
40 |
&GetAuthType |
| 42 |
&GetAuthTypeCode |
41 |
&GetAuthTypeCode |
| 43 |
&GetAuthMARCFromKohaField |
42 |
&GetAuthMARCFromKohaField |
| 44 |
&AUTHhtml2marc |
|
|
| 45 |
|
43 |
|
| 46 |
&AddAuthority |
44 |
&AddAuthority |
| 47 |
&ModAuthority |
45 |
&ModAuthority |
|
Lines 251-257
sub SearchAuthorities {
Link Here
|
| 251 |
}#if value |
249 |
}#if value |
| 252 |
} |
250 |
} |
| 253 |
##Add how many queries generated |
251 |
##Add how many queries generated |
| 254 |
if ($query=~/\S+/){ |
252 |
if (defined $query && $query=~/\S+/){ |
| 255 |
$query= $and x $attr_cnt . $query . $q2; |
253 |
$query= $and x $attr_cnt . $query . $q2; |
| 256 |
} else { |
254 |
} else { |
| 257 |
$query= $q2; |
255 |
$query= $q2; |
|
Lines 854-906
sub GetAuthType {
Link Here
|
| 854 |
} |
852 |
} |
| 855 |
|
853 |
|
| 856 |
|
854 |
|
| 857 |
sub AUTHhtml2marc { |
|
|
| 858 |
my ($rtags,$rsubfields,$rvalues,%indicators) = @_; |
| 859 |
my $dbh=C4::Context->dbh; |
| 860 |
my $prevtag = -1; |
| 861 |
my $record = MARC::Record->new(); |
| 862 |
#---- TODO : the leader is missing |
| 863 |
|
| 864 |
# my %subfieldlist=(); |
| 865 |
my $prevvalue; # if tag <10 |
| 866 |
my $field; # if tag >=10 |
| 867 |
for (my $i=0; $i< @$rtags; $i++) { |
| 868 |
# rebuild MARC::Record |
| 869 |
if (@$rtags[$i] ne $prevtag) { |
| 870 |
if ($prevtag < 10) { |
| 871 |
if ($prevvalue) { |
| 872 |
$record->add_fields((sprintf "%03s",$prevtag),$prevvalue); |
| 873 |
} |
| 874 |
} else { |
| 875 |
if ($field) { |
| 876 |
$record->add_fields($field); |
| 877 |
} |
| 878 |
} |
| 879 |
$indicators{@$rtags[$i]}.=' '; |
| 880 |
if (@$rtags[$i] <10) { |
| 881 |
$prevvalue= @$rvalues[$i]; |
| 882 |
undef $field; |
| 883 |
} else { |
| 884 |
undef $prevvalue; |
| 885 |
$field = MARC::Field->new( (sprintf "%03s",@$rtags[$i]), substr($indicators{@$rtags[$i]},0,1),substr($indicators{@$rtags[$i]},1,1), @$rsubfields[$i] => @$rvalues[$i]); |
| 886 |
} |
| 887 |
$prevtag = @$rtags[$i]; |
| 888 |
} else { |
| 889 |
if (@$rtags[$i] <10) { |
| 890 |
$prevvalue=@$rvalues[$i]; |
| 891 |
} else { |
| 892 |
if (length(@$rvalues[$i])>0) { |
| 893 |
$field->add_subfields(@$rsubfields[$i] => @$rvalues[$i]); |
| 894 |
} |
| 895 |
} |
| 896 |
$prevtag= @$rtags[$i]; |
| 897 |
} |
| 898 |
} |
| 899 |
# the last has not been included inside the loop... do it now ! |
| 900 |
$record->add_fields($field) if $field; |
| 901 |
return $record; |
| 902 |
} |
| 903 |
|
| 904 |
=head2 FindDuplicateAuthority |
855 |
=head2 FindDuplicateAuthority |
| 905 |
|
856 |
|
| 906 |
$record= &FindDuplicateAuthority( $record, $authtypecode) |
857 |
$record= &FindDuplicateAuthority( $record, $authtypecode) |
|
Lines 1015-1028
sub BuildSummary{
Link Here
|
| 1015 |
$resultstring =~ s/\n/<br>/g; |
966 |
$resultstring =~ s/\n/<br>/g; |
| 1016 |
$summary = $resultstring; |
967 |
$summary = $resultstring; |
| 1017 |
} else { |
968 |
} else { |
| 1018 |
my $heading; |
969 |
my $heading = ''; |
| 1019 |
my $altheading; |
970 |
my $altheading = ''; |
| 1020 |
my $seealso; |
971 |
my $seealso = ''; |
| 1021 |
my $broaderterms; |
972 |
my $broaderterms = ''; |
| 1022 |
my $narrowerterms; |
973 |
my $narrowerterms = ''; |
| 1023 |
my $see; |
974 |
my $see = ''; |
| 1024 |
my $seeheading; |
975 |
my $seeheading = ''; |
| 1025 |
my $notes; |
976 |
my $notes = ''; |
| 1026 |
my @fields = $record->fields(); |
977 |
my @fields = $record->fields(); |
| 1027 |
if (C4::Context->preference('marcflavour') eq 'UNIMARC') { |
978 |
if (C4::Context->preference('marcflavour') eq 'UNIMARC') { |
| 1028 |
# construct UNIMARC summary, that is quite different from MARC21 one |
979 |
# construct UNIMARC summary, that is quite different from MARC21 one |
|
Lines 1471-1477
sub get_auth_type_location {
Link Here
|
| 1471 |
my $auth_type_code = @_ ? shift : ''; |
1422 |
my $auth_type_code = @_ ? shift : ''; |
| 1472 |
|
1423 |
|
| 1473 |
my ($tag, $subfield) = GetAuthMARCFromKohaField('auth_header.authtypecode', $auth_type_code); |
1424 |
my ($tag, $subfield) = GetAuthMARCFromKohaField('auth_header.authtypecode', $auth_type_code); |
| 1474 |
if (defined $tag and defined $subfield and $tag != 0 and $subfield != 0) { |
1425 |
if (defined $tag and defined $subfield and $tag != 0 and $subfield ne '' and $subfield ne ' ') { |
| 1475 |
return ($tag, $subfield); |
1426 |
return ($tag, $subfield); |
| 1476 |
} else { |
1427 |
} else { |
| 1477 |
if (C4::Context->preference('marcflavour') eq "MARC21") { |
1428 |
if (C4::Context->preference('marcflavour') eq "MARC21") { |