# Leader
-
+
+if ( rec('200','a') ) {
+
if ( rec('999') && first(rec('999')) =~ m/pregledan/i) {
marc_leader('05','c');
} else {
}
+# 001 polje dodaje Voyager
+
+# polje 035 je u NSK ponovljivo. za¹to ???
-# gre¹ka! - 000 se ne zapisuje u marc:
-marc('001',
- rec('000')
+marc('035','6',
+ prefix(
+ rec('994','a'),
+ rec('000')
+ )
);
+# u marc 035a treba dodati System Number -
+# NSK zapisuje Voyagerov ID (001) - kako ???
+
marc('020','a',
rec('010')
);
+# u polje 040a mo¾da jo¹ dodati prefiks HR
+# NSK ima HR NSB (mo¾da u novijim zapisima ima NSK)
+
+marc('040','a',
+ rec('801')
+);
+
+marc('040','b',
+ 'hrv'
+);
+
if (rec('300') && first(rec('300')) =~ m/prijevod/i) {
marc_indicators('041', 1, ' ');
} else {
);
marc_indicators('245', 0, 0);
-marc('245','a',
- rec('200','a')
-);
-marc('245','b',
+marc_compose('245',
+ 'a', rec('200','a'),
+ 'h', rec('200','b'),
+ 'b',
join_with(' : ',
rec('200','d'),
rec('200','e')
- )
-);
-
-marc('245','c',
+ ),
+ 'c',
join_with(' ; ',
rec('200','f'),
rec('200','g')
- )
-);
+ ),
+);
+
+# marc('245','a',
+# rec('200','a')
+# );
+#
+# marc('245','b',
+# join_with(' : ',
+# rec('200','d'),
+# rec('200','e')
+# )
+# );
+#
+# marc('245','c',
+# join_with(' ; ',
+# rec('200','f'),
+# rec('200','g')
+# )
+# );
marc('250','a',
rec('205','a')
rec('320')
);
-marc('501','a',
- rec('327')
+# napomene uz konverziju polja sa sadr¾ajem:
+# NSK konvertira 327 (NP) u 501 (R)
+# u LOC konv. tablici stoji 327 (NP) u 505 (NR)
+# standard i validacije dopu¹taju 501 (R) i 505 (R)
+# FFPS koristi 327 (P)
+# FFIZ koristi 327
+
+
+marc_indicators('505', '0', ' ');
+marc('505','a',
+ regex('s/\\r\\n\\r\\n|\\r\\n/ ; /g',
+ rec('327')
+ )
);
+# napomene uz konverziju polja 330:
+# NSK konvertira 330 (P) u 520 (P) = LOC konv. tablica
+# FFIZ koristi 330 (P) - kljuène rijeèi, dijelovi sadr¾aja, sa¾eci
+# FFFO koristi 330 (P) - kljuène rijeèi, dijelovi sadr¾aja
+# FFPS koristi 330 (NP) - sa¾etak
+
marc('520','a',
- rec('330')
+ regex('s/\\r\\n\\r\\n|\\r\\n/. /g',
+ rec('330')
+ )
);
# mo¾da i polje 520y - jezik napomene ako je uvijek isti jezik
rec('610')
);
+# 675 podpolja c, d ... - ¹to s njima ???
+
marc('080','a',
rec('675','a')
);
-# podpolja c, d ... - ¹to s njima?
+# 084 je other classification (R)
+# NSK ga koristi za struènu oznaku NSK iz polja 681
+# NSK definira i prelazak polja 686 u 084, u skladu s LOC konv. tablicom
+#
+# polje 686 koristi FFPS
marc('084','a',
rec('686')
marc_indicators('700', 1, ' ');
+
+if ( rec('701') ) {
+marc('700','4',
+ 'aut'
+);
+}
+
marc('700','a',
join_with(', ',
rec('701', 'a'),
)
);
-if ( rec('701') ) {
-marc('700','4',
- 'aut'
-);
-}
+marc('700','a',
+ join_with(', ',
+ rec('701', 'c'),
+ rec('701', 'd')
+ )
+);
+
+marc('700','a',
+ join_with(', ',
+ rec('701', 'e'),
+ rec('701', 'f')
+ )
+);
+
+marc('700','a',
+ join_with(', ',
+ rec('701', 'g'),
+ rec('701', 'h')
+ )
+);
marc('700','a',
join_with(', ',
)
);
-# podesiti podpolje 4 na editore nije dobra ideja
-#
-# if ( rec('702') ) {
-# marc('700','4',
-# '340'
-# );
-# }
+marc('700','a',
+ join_with(', ',
+ rec('702','c'),
+ rec('702','d')
+ )
+);
+
+marc('700','a',
+ join_with(', ',
+ rec('702','e'),
+ rec('702','f')
+ )
+);
+
+marc('700','a',
+ join_with(', ',
+ rec('702','g'),
+ rec('702','h')
+ )
+);
+
if ( rec('710','f') ) {
rec('230','a')
);
+if ( ! rec('230','a') ) {
+
+marc('245','a',
+ rec('200','a')
+);
+
+}
+
marc('245','b',
rec('230','e')
);
);
}
+
+}
my ($i1,$i2) = defined($marc_indicators->{$f}) ? @{ $marc_indicators->{$f} } : (' ',' ');
my $m = [ $f, $i1, $i2 ];
+ warn "### marc_compose input subfields = ", dump(@_),$/ if ($debug > 2);
+
while (@_) {
my $sf = shift or die "marc_compose $f needs subfield";
my $v = shift;
=cut
sub rec {
+ my @out;
if ($#_ == 0) {
- return rec1(@_);
+ @out = rec1(@_);
} elsif ($#_ == 1) {
- return rec2(@_);
+ @out = rec2(@_);
+ }
+ if (@out) {
+ return @out;
+ } else {
+ return '';
}
}
sub join_with {
my $d = shift;
- return join($d, grep { defined($_) && $_ ne '' } @_);
+ my $v = join($d, grep { defined($_) && $_ ne '' } @_);
+ return '' unless defined($v);
+ return $v;
}
=head2 split_rec_on