Changeset 32818
- Timestamp:
- 2019-02-25T23:01:49+13:00 (5 years ago)
- Location:
- main/trunk/model-sites-dev/heritage-nz/collect/reports-2019/perllib/plugins
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/model-sites-dev/heritage-nz/collect/reports-2019/perllib/plugins/CSVFieldSeparator.pm
r32817 r32818 43 43 'type' => "string", 44 44 'deft' => "auto", 45 'reqd' => "no" }, 46 { 'name' => "metadata_value_separator", 47 'desc' => "{CSVFieldSeparator.metadata_value_separator}", 48 'type' => "string", 49 'deft' => "", 45 50 'reqd' => "no" } 46 51 ]; -
main/trunk/model-sites-dev/heritage-nz/collect/reports-2019/perllib/plugins/CSVPlugin.pm
r32817 r32818 130 130 } 131 131 else { 132 132 print STDERR "Error: Badly formatted CSV field line: $csv_file_field_line.\n"; 133 133 } 134 134 … … 154 154 my $separate_char = $self->{'separate_char'}; 155 155 156 my $md_val_sep = $self->{'metadata_value_separator'}; 157 undef $md_val_sep if ($md_val_sep eq ""); 158 156 159 my $csv = Text::CSV->new(); 157 160 $csv->sep_char($separate_char); … … 166 169 # Only bother with non-empty values 167 170 if ($md_val ne "" && defined($csv_file_fields[$i])) { 168 $doc_obj->add_utf8_metadata($section, $csv_file_fields[$i], $md_val); 171 if (defined $md_val_sep) { 172 my $md_name = $csv_file_fields[$i]; 173 174 my @within_md_vals = split(/${md_val_sep}/,$md_val); 175 foreach my $within_md_val (@within_md_vals) { 176 $doc_obj->add_utf8_metadata($section, $md_name, $within_md_val); 177 } 178 } 179 else { 180 $doc_obj->add_utf8_metadata($section, $csv_file_fields[$i], $md_val); 181 } 169 182 } 170 183 } -
main/trunk/model-sites-dev/heritage-nz/collect/reports-2019/perllib/plugins/MetadataCSVPlugin.pm
r32817 r32818 146 146 my $separate_char = $self->{'csv_field_separator'}; 147 147 148 my $md_val_sep = $self->{'metadata_value_separator'}; 149 undef $md_val_sep if ($md_val_sep eq ""); 150 148 151 my @csv_file_lines = split(/\n/, $csv_file_content); 149 152 my $csv_file_field_line = shift(@csv_file_lines); … … 198 201 # Only bother with non-empty values 199 202 if ($md_val ne "" && defined($csv_file_fields[$i])) { 200 if (!defined $csv_line_metadata{$csv_file_fields[$i]}) { 201 $csv_line_metadata{$csv_file_fields[$i]} = []; 203 204 my $md_name = $csv_file_fields[$i]; 205 206 if (!defined $md_name) { 207 $csv_line_metadata{$md_name} = []; 202 208 } 203 push (@{$csv_line_metadata{$csv_file_fields[$i]}}, $md_val); 209 210 if (defined $md_val_sep) { 211 212 my @within_md_vals = split(/${md_val_sep}/,$md_val); 213 push (@{$csv_line_metadata{$md_name}}, @within_md_vals); 214 215 # foreach my $within_md_val (@within_md_vals) { 216 # push (@{$csv_line_metadata{$md_name}}, $within_md_val); 217 # } 218 } 219 else { 220 push (@{$csv_line_metadata{$md_name}}, $md_val); 221 } 204 222 } 205 223 }
Note:
See TracChangeset
for help on using the changeset viewer.