value => $data->{host} . ":"
. $data->{port} . "/"
. $data->{database},
+ encoding => ($data->{encoding}?$data->{encoding}:"iso-5426"),
checked => "checked",
icon => $data->{icon},
zed => $data->{type} eq 'zed',
my $marc=shift;
my $encoding=shift;
my $record = MARC::Record->new_from_usmarc($marc);
- if (C4::Context->preference("marcflavour") eq "UNIMARC"){
+# if (C4::Context->preference("marcflavour") eq "UNIMARC"){
my $targetcharset="utf8";
if ($encoding && $targetcharset ne $encoding){
my $newRecord=MARC::Record->new();
my $createdfield=0;
foreach my $subfield ($field->subfields()){
if ($createdfield){
- if (($newField->tag eq '100')) {
+ if ((C4::Context->preference("marcflavour") eq "UNIMARC") && ($newField->tag eq '100')) {
substr($subfield->[1],26,4,"5050") if ($targetcharset eq "utf8");
- }
+ } elsif (C4::Context->preference("marcflavour") eq "USMARC"){
+ $newRecord->encoding("UTF-8");
+ }
map {$decoder->convert($_)} @$subfield;
$newField->add_subfields($subfield->[0]=>$subfield->[1]);
} else {
# my $utf8=eval{MARC::Charset::marc8_to_utf8($subfield->[1])};
# if ($@) {warn "z3950 character conversion error $@ ";$utf8=$subfield->[1]};
my $utf8=char_decode5426($subfield->[1]);
- if (($field->tag eq '100')) {
+ if ((C4::Context->preference("marcflavour") eq "UNIMARC") && ($field->tag eq '100')) {
substr($utf8,26,4,"5050");
- }
+ } elsif (C4::Context->preference("marcflavour") eq "USMARC"){
+ $newRecord->encoding("UTF-8");
+ }
if ($createdfield){
$newField->add_subfields($subfield->[0]=>$utf8);
} else {
return $newRecord;
}
return $record;
- }
- return $record;
+# }
+# return $record;
}
SetVersion ($DBversion);
}
+$DBversion = "3.00.00.049";
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+ $dbh->do("ALTER TABLE z3950servers
+ ADD `encoding` text default NULL,
+ ");
+ print "Upgrade to $DBversion done ( Added encoding field to z3950servers table )\n";
+ SetVersion ($DBversion);
+}
+
=item DropAllForeignKeys($table)
Drop all foreign keys of the table $table