http://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=12404 --- Comment #17 from Frédéric Demians <frederic@tamil.fr> ---
I am not sure to understand the problem. In our case (CSV), you will set something like: === Title=[% FOREACH field IN fields.245 %][% field.a.0 %] [% field.a.n %] [% field.a.p %] [% field.a.h %] [% field.a.b %][% END %] ===
Since it's not possible to display an entire field and you need to list the subfields you want to display, the order is not a problem.
Let suppose than another valid 245 field contains (from LoC MARC21 format): 245 00 $a Love from Joy : $b letters from a farmer’s wife. $n Part III, $p 1987-1995, At the bungalow. It must be displayed (and exported): Love from Joy : letters from a farmer’s wife. Part III, 1987-1995, At the bungalow. With you TT (minus typo): Love from Joy : Part III, 1987-1995, At the bungalow. letters from a farmer's wife. You can't have an unique TT for all 245 subfields combinations.
IMO this way allows us a very good flexibility (since we can use the TT methods) with a minimum of code.
It still possible. Fields order isn't that important, but sufields is. You could build an hashref of arrayref of arrayref. For a $record containing a MARC::Record (its a variation of your code): my $fields; for my $field ( $record->fields ) { my $fieldtag = $field->tag; my $values; if ( $field->is_control_field ) { $values = $field->data(); } else { $values->{indicator}{1} = $field->indicator(1); $values->{indicator}{2} = $field->indicator(2); for ( $field->subfields ) { my ($letter, $value) = @$_; push @{ $values->{subf} }, [ $letter => $value ]; } } # We force the key as an integer (trick for 00X and OXX fields) push @{ $fields->{fields}{0+$fieldtag} }, $values; } And then to display the first 245 field, all subfields in order: [% FOREACH s IN fields.245.first.subf %][% s.1 %] [% END %] -- You are receiving this mail because: You are watching all bug changes.