Lines 2137-2142
sub TransformHtmlToMarc {
Link Here
|
2137 |
my $record = MARC::Record->new(); |
2137 |
my $record = MARC::Record->new(); |
2138 |
my $i = 0; |
2138 |
my $i = 0; |
2139 |
my @fields; |
2139 |
my @fields; |
|
|
2140 |
#FIXME This code assumes that the CGI params will be in the same order as the fields in the template; this is no absolute guarantee! |
2140 |
while ( $params[$i] ) { # browse all CGI params |
2141 |
while ( $params[$i] ) { # browse all CGI params |
2141 |
my $param = $params[$i]; |
2142 |
my $param = $params[$i]; |
2142 |
my $newfield = 0; |
2143 |
my $newfield = 0; |
Lines 2176-2194
sub TransformHtmlToMarc {
Link Here
|
2176 |
|
2177 |
|
2177 |
# > 009, deal with subfields |
2178 |
# > 009, deal with subfields |
2178 |
} else { |
2179 |
} else { |
2179 |
while ( defined $params[$j] && $params[$j] =~ /_code_/ ) { # browse all it's subfield |
2180 |
# browse subfields for this tag (reason for _code_ match) |
2180 |
my $inner_param = $params[$j]; |
2181 |
while(defined $params[$j] && $params[$j] =~ /_code_/) { |
2181 |
if ($newfield) { |
2182 |
last unless defined $params[$j+1]; |
2182 |
if ( $cgi->param( $params[ $j + 1 ] ) ne '' ) { # only if there is a value (code => value) |
2183 |
#if next param ne subfield, then it was probably empty |
2183 |
$newfield->add_subfields( $cgi->param($inner_param) => $cgi->param( $params[ $j + 1 ] ) ); |
2184 |
#try next param by incrementing j |
2184 |
} |
2185 |
if($params[$j+1]!~/_subfield_/) {$j++; next; } |
2185 |
} else { |
2186 |
my $fval= $cgi->param($params[$j+1]); |
2186 |
if ( $cgi->param( $params[ $j + 1 ] ) ne '' ) { # creating only if there is a value (code => value) |
2187 |
#check if subfield value not empty and field exists |
2187 |
$newfield = MARC::Field->new( $tag, $ind1, $ind2, $cgi->param($inner_param) => $cgi->param( $params[ $j + 1 ] ), ); |
2188 |
if($fval ne '' && $newfield) { |
2188 |
} |
2189 |
$newfield->add_subfields( $cgi->param($params[$j]) => $fval); |
|
|
2190 |
} |
2191 |
elsif($fval ne '') { |
2192 |
$newfield = MARC::Field->new( $tag, $ind1, $ind2, $cgi->param($params[$j]) => $fval ); |
2189 |
} |
2193 |
} |
2190 |
$j += 2; |
2194 |
$j += 2; |
2191 |
} |
2195 |
} #end-of-while |
|
|
2196 |
$i= $j-1; #update i for outer loop accordingly |
2192 |
} |
2197 |
} |
2193 |
push @fields, $newfield if ($newfield); |
2198 |
push @fields, $newfield if ($newfield); |
2194 |
} |
2199 |
} |
2195 |
- |
|
|