Lines 1989-1996
sub _default_ind_to_space {
Link Here
|
1989 |
|
1989 |
|
1990 |
=head2 TransformHtmlToMarc |
1990 |
=head2 TransformHtmlToMarc |
1991 |
|
1991 |
|
1992 |
L<$record> = TransformHtmlToMarc(L<$params>,L<$cgi>) |
1992 |
L<$record> = TransformHtmlToMarc(L<$cgi>) |
1993 |
L<$params> is a ref to an array as below: |
1993 |
L<$cgi> is the CGI object which containts the values for subfields |
1994 |
{ |
1994 |
{ |
1995 |
'tag_010_indicator1_531951' , |
1995 |
'tag_010_indicator1_531951' , |
1996 |
'tag_010_indicator2_531951' , |
1996 |
'tag_010_indicator2_531951' , |
Lines 2007-2021
sub _default_ind_to_space {
Link Here
|
2007 |
'tag_200_code_f_873510_110730' , |
2007 |
'tag_200_code_f_873510_110730' , |
2008 |
'tag_200_subfield_f_873510_110730' , |
2008 |
'tag_200_subfield_f_873510_110730' , |
2009 |
} |
2009 |
} |
2010 |
L<$cgi> is the CGI object which containts the value. |
|
|
2011 |
L<$record> is the MARC::Record object. |
2010 |
L<$record> is the MARC::Record object. |
2012 |
|
2011 |
|
2013 |
=cut |
2012 |
=cut |
2014 |
|
2013 |
|
2015 |
sub TransformHtmlToMarc { |
2014 |
sub TransformHtmlToMarc { |
2016 |
my $params = shift; |
|
|
2017 |
my $cgi = shift; |
2015 |
my $cgi = shift; |
2018 |
|
2016 |
|
|
|
2017 |
my @params = $cgi->param(); |
2018 |
|
2019 |
# explicitly turn on the UTF-8 flag for all |
2019 |
# explicitly turn on the UTF-8 flag for all |
2020 |
# 'tag_' parameters to avoid incorrect character |
2020 |
# 'tag_' parameters to avoid incorrect character |
2021 |
# conversion later on |
2021 |
# conversion later on |
Lines 2035-2042
sub TransformHtmlToMarc {
Link Here
|
2035 |
my $record = MARC::Record->new(); |
2035 |
my $record = MARC::Record->new(); |
2036 |
my $i = 0; |
2036 |
my $i = 0; |
2037 |
my @fields; |
2037 |
my @fields; |
2038 |
while ( $params->[$i] ) { # browse all CGI params |
2038 |
while ( $params[$i] ) { # browse all CGI params |
2039 |
my $param = $params->[$i]; |
2039 |
my $param = $params[$i]; |
2040 |
my $newfield = 0; |
2040 |
my $newfield = 0; |
2041 |
|
2041 |
|
2042 |
# if we are on biblionumber, store it in the MARC::Record (it may not be in the edited fields) |
2042 |
# if we are on biblionumber, store it in the MARC::Record (it may not be in the edited fields) |
Lines 2052-2058
sub TransformHtmlToMarc {
Link Here
|
2052 |
my $tag = $1; |
2052 |
my $tag = $1; |
2053 |
|
2053 |
|
2054 |
my $ind1 = _default_ind_to_space( substr( $cgi->param($param), 0, 1 ) ); |
2054 |
my $ind1 = _default_ind_to_space( substr( $cgi->param($param), 0, 1 ) ); |
2055 |
my $ind2 = _default_ind_to_space( substr( $cgi->param( $params->[ $i + 1 ] ), 0, 1 ) ); |
2055 |
my $ind2 = _default_ind_to_space( substr( $cgi->param( $params[ $i + 1 ] ), 0, 1 ) ); |
2056 |
$newfield = 0; |
2056 |
$newfield = 0; |
2057 |
my $j = $i + 2; |
2057 |
my $j = $i + 2; |
2058 |
|
2058 |
|
Lines 2062-2088
sub TransformHtmlToMarc {
Link Here
|
2062 |
# Force a fake leader even if not provided to avoid crashing |
2062 |
# Force a fake leader even if not provided to avoid crashing |
2063 |
# during decoding MARC record containing UTF-8 characters |
2063 |
# during decoding MARC record containing UTF-8 characters |
2064 |
$record->leader( |
2064 |
$record->leader( |
2065 |
length( $cgi->param($params->[$j+1]) ) == 24 |
2065 |
length( $cgi->param($params[$j+1]) ) == 24 |
2066 |
? $cgi->param( $params->[ $j + 1 ] ) |
2066 |
? $cgi->param( $params[ $j + 1 ] ) |
2067 |
: ' nam a22 4500' |
2067 |
: ' nam a22 4500' |
2068 |
) |
2068 |
) |
2069 |
; |
2069 |
; |
2070 |
# between 001 and 009 (included) |
2070 |
# between 001 and 009 (included) |
2071 |
} elsif ( $cgi->param( $params->[ $j + 1 ] ) ne '' ) { |
2071 |
} elsif ( $cgi->param( $params[ $j + 1 ] ) ne '' ) { |
2072 |
$newfield = MARC::Field->new( $tag, $cgi->param( $params->[ $j + 1 ] ), ); |
2072 |
$newfield = MARC::Field->new( $tag, $cgi->param( $params[ $j + 1 ] ), ); |
2073 |
} |
2073 |
} |
2074 |
|
2074 |
|
2075 |
# > 009, deal with subfields |
2075 |
# > 009, deal with subfields |
2076 |
} else { |
2076 |
} else { |
2077 |
while ( defined $params->[$j] && $params->[$j] =~ /_code_/ ) { # browse all it's subfield |
2077 |
while ( defined $params[$j] && $params[$j] =~ /_code_/ ) { # browse all it's subfield |
2078 |
my $inner_param = $params->[$j]; |
2078 |
my $inner_param = $params[$j]; |
2079 |
if ($newfield) { |
2079 |
if ($newfield) { |
2080 |
if ( $cgi->param( $params->[ $j + 1 ] ) ne '' ) { # only if there is a value (code => value) |
2080 |
if ( $cgi->param( $params[ $j + 1 ] ) ne '' ) { # only if there is a value (code => value) |
2081 |
$newfield->add_subfields( $cgi->param($inner_param) => $cgi->param( $params->[ $j + 1 ] ) ); |
2081 |
$newfield->add_subfields( $cgi->param($inner_param) => $cgi->param( $params[ $j + 1 ] ) ); |
2082 |
} |
2082 |
} |
2083 |
} else { |
2083 |
} else { |
2084 |
if ( $cgi->param( $params->[ $j + 1 ] ) ne '' ) { # creating only if there is a value (code => value) |
2084 |
if ( $cgi->param( $params[ $j + 1 ] ) ne '' ) { # creating only if there is a value (code => value) |
2085 |
$newfield = MARC::Field->new( $tag, $ind1, $ind2, $cgi->param($inner_param) => $cgi->param( $params->[ $j + 1 ] ), ); |
2085 |
$newfield = MARC::Field->new( $tag, $ind1, $ind2, $cgi->param($inner_param) => $cgi->param( $params[ $j + 1 ] ), ); |
2086 |
} |
2086 |
} |
2087 |
} |
2087 |
} |
2088 |
$j += 2; |
2088 |
$j += 2; |