Merge branch 'bug_8347' into 3.12-master
This commit is contained in:
commit
0bb9d984d4
|
|
@ -3624,6 +3624,8 @@ sub ModBiblioMarc {
|
|||
|
||||
# deal with UNIMARC field 100 (encoding) : create it if needed & set encoding to unicode
|
||||
if ( $encoding eq "UNIMARC" ) {
|
||||
my $defaultlanguage = C4::Context->preference("UNIMARCField100Language");
|
||||
$defaultlanguage = "fre" if (!$defaultlanguage || length($defaultlanguage) != 3);
|
||||
my $string = $record->subfield( 100, "a" );
|
||||
if ( ($string) && ( length( $record->subfield( 100, "a" ) ) == 36 ) ) {
|
||||
my $f100 = $record->field(100);
|
||||
|
|
@ -3632,8 +3634,9 @@ sub ModBiblioMarc {
|
|||
$string = POSIX::strftime( "%Y%m%d", localtime );
|
||||
$string =~ s/\-//g;
|
||||
$string = sprintf( "%-*s", 35, $string );
|
||||
substr ( $string, 22, 3, $defaultlanguage);
|
||||
}
|
||||
substr( $string, 22, 6, "frey50" );
|
||||
substr( $string, 25, 3, "y50" );
|
||||
unless ( $record->subfield( 100, "a" ) ) {
|
||||
$record->insert_fields_ordered( MARC::Field->new( 100, "", "", "a" => $string ) );
|
||||
}
|
||||
|
|
|
|||
|
|
@ -324,8 +324,10 @@ sub SetMarcUnicodeFlag {
|
|||
substr($leader, 9, 1) = 'a';
|
||||
$marc_record->leader($leader);
|
||||
} elsif ($marc_flavour =~/UNIMARC/) {
|
||||
my $defaultlanguage = C4::Context->preference("UNIMARCField100Language");
|
||||
$defaultlanguage = "fre" if (!$defaultlanguage || length($defaultlanguage) != 3);
|
||||
my $string;
|
||||
my ($subflength,$encodingposition)=($marc_flavour=~/AUTH/?(21,9):(36,22));
|
||||
my ($subflength,$encodingposition)=($marc_flavour=~/AUTH/?(21,12):(36,25));
|
||||
$string=$marc_record->subfield( 100, "a" );
|
||||
if (defined $string && length($string)==$subflength) {
|
||||
$string = substr $string, 0,$subflength if (length($string)>$subflength);
|
||||
|
|
@ -333,9 +335,10 @@ sub SetMarcUnicodeFlag {
|
|||
else {
|
||||
$string = POSIX::strftime( "%Y%m%d", localtime );
|
||||
$string =~ s/\-//g;
|
||||
$string = sprintf( "%-*s", $subflength, $string );
|
||||
$string = sprintf( "%-*s", $subflength, $string );
|
||||
substr ( $string, ($encodingposition - 3), 3, $defaultlanguage);
|
||||
}
|
||||
substr( $string, $encodingposition, 8, "frey50 " );
|
||||
substr( $string, $encodingposition, 3, "y50" );
|
||||
if ( $marc_record->subfield( 100, "a" ) ) {
|
||||
$marc_record->field('100')->update(a=>$string);
|
||||
}
|
||||
|
|
@ -343,7 +346,7 @@ sub SetMarcUnicodeFlag {
|
|||
$marc_record->insert_grouped_field(
|
||||
MARC::Field->new( 100, '', '', "a" => $string ) );
|
||||
}
|
||||
$debug && warn "encodage: ", substr( $marc_record->subfield(100, 'a'), $encodingposition, 8 );
|
||||
$debug && warn "encodage: ", substr( $marc_record->subfield(100, 'a'), $encodingposition, 3 );
|
||||
} else {
|
||||
warn "Unrecognized marcflavour: $marc_flavour";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -82,6 +82,9 @@ sub plugin {
|
|||
|
||||
my $dbh = C4::Context->dbh;
|
||||
|
||||
my $defaultlanguage = C4::Context->preference("UNIMARCField100Language");
|
||||
$defaultlanguage = "fre" if (!$defaultlanguage || length($defaultlanguage) != 3);
|
||||
|
||||
my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
|
||||
{
|
||||
template_name => "cataloguing/value_builder/unimarc_field_100.tmpl",
|
||||
|
|
@ -92,7 +95,7 @@ sub plugin {
|
|||
debug => 1,
|
||||
}
|
||||
);
|
||||
$result = ' d u y0frey50 ba' unless $result;
|
||||
$result = " d u y0".$defaultlanguage."y50 ba" unless $result;
|
||||
my $f1 = substr( $result, 0, 8 );
|
||||
if ( $f1 eq ' ' ) {
|
||||
my @today = Date::Calc::Today();
|
||||
|
|
|
|||
|
|
@ -414,3 +414,4 @@ INSERT IGNORE INTO systempreferences (variable,value,explanation,options,type) V
|
|||
INSERT IGNORE INTO systempreferences (variable,value,explanation,options,type) VALUES('IDreamBooksResults','0','Display IDreamBooks.com rating in search results','','YesNo');
|
||||
INSERT INTO systempreferences (variable,value,options,explanation,type) VALUES ('OPACNumbersPreferPhrase','0', NULL, 'Control the use of phr operator in callnumber and standard number OPAC searches', 'YesNo');
|
||||
INSERT INTO systempreferences (variable,value,options,explanation,type) VALUES ('IntranetNumbersPreferPhrase','0', NULL, 'Control the use of phr operator in callnumber and standard number staff client searches', 'YesNo');
|
||||
INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('UNIMARCField100Language', 'fre','UNIMARC field 100 default language',NULL,'short');
|
||||
|
|
|
|||
|
|
@ -6414,6 +6414,12 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
|
|||
SetVersion ($DBversion);
|
||||
}
|
||||
|
||||
$DBversion = "3.11.00.020";
|
||||
if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
|
||||
$dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('UNIMARCField100Language', 'fre','UNIMARC field 100 default language',NULL,'short')");
|
||||
print "Upgrade to $DBversion done (Bug 8347 - Koha forces UNIMARC 100 field code language to 'fre')\n";
|
||||
SetVersion($DBversion);
|
||||
}
|
||||
|
||||
=head1 FUNCTIONS
|
||||
|
||||
|
|
|
|||
|
|
@ -104,7 +104,11 @@ Cataloging:
|
|||
-
|
||||
- Define a list of subfields to use when prefilling items (separated by space)
|
||||
- pref: SubfieldsToUseWhenPrefill
|
||||
|
||||
-
|
||||
- Use the languague (ISO 690-2)
|
||||
- pref: UNIMARCField100Language
|
||||
class: short
|
||||
- as default language in the UNIMARC field 100 when creating a new record or in the field plugin.
|
||||
Display:
|
||||
-
|
||||
- 'Separate multiple displayed authors, series or subjects with '
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ the kohaversion is divided in 4 parts :
|
|||
use strict;
|
||||
|
||||
sub kohaversion {
|
||||
our $VERSION = '3.11.00.019';
|
||||
our $VERSION = '3.11.00.020';
|
||||
# version needs to be set this way
|
||||
# so that it can be picked up by Makefile.PL
|
||||
# during install
|
||||
|
|
|
|||
Loading…
Reference in New Issue