http://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=9202
Jared Camins-Esakov <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #13863|0 |1 is obsolete| | --- Comment #3 from Jared Camins-Esakov <[email protected]> --- Created attachment 13949 --> http://bugs.koha-community.org/bugzilla3/attachment.cgi?id=13949&action=edit Bug 9202: Add a MARC plugin for Template::Toolkit A Template::Toolkit plugin which given a MARC::Record object parses it into a hash that can be accessed directly in Template::Toolkit. === SYNOPSIS === [% USE record = MARC(mymarc) %] <!-- translate MARC::Record to T::T hash --> <h1>[% record.f245.sa %]</h1> <!-- subfield 245$a --> [% record.f245.all %] <!-- all subfields concatenated together --> [% FOREACH link IN record.f856s %] <!-- process each 856 field --> <a href="whatever/[% link.su %]">[% link.sy %]</a> <!-- create a link on 856$y --> [% END %] <!-- /FOREACH link IN record.856s --> [% FOREACH contents IN record.f505s %] <!-- process each 505 field --> [% FOREACH subf IN contents.subfields %] <!-- process each subfield --> [% SWITCH subf.code %] [% CASE 'a' %] <span class='contents'>[% subf.value %]</span> [% CASE 't' %] <span class='title'>[% subf.value %]</span> [% CASE 'r' %] <span class='responsibility'>[% subf.value %]</span> [% END %] [% END %] <!-- /FOREACH contents.subfields --> [% END %] <!-- /FOREACH contents IN record.f505s --> [% FOREACH subj IN record.f6xxs %] <a href="whatever/[% subj.s9 %]">[% subj.sa %]</a> <!-- create a link on 6[0-9]{2}$a --> [% END %] [% FOREACH field IN record.fields %] [% SWITCH field.tag %] [% CASE '600' %] Subject: [% field.all %] is what we are all about [% CASE '700' %] Co-author: [% field.all %], I presume? [% END %] [% END %] === ACCESSORS === By using some clever AUTOLOAD acrobatics, this plugin offers the user six types of accessors. ==== Direct accessors ==== [% record.f245.sa %] print $record->f245->sa; By prefixing field numbers with an 'f' and subfield codes with an 's', the first field/subfield with a given tag/code can be accessed. ==== Concatenated accessors ==== [% record.f245.all %] print $record->f245->all; A string consisting of all subfields concatenated together is accessible through the all member of field objects. ==== Subfield iterators ==== [% FOREACH subfield IN record.f245.subfields %] [% subfield.code %] = [% subfield.value %] [% END %] foreach my $subfield ($record->f245) { print $subfield->code, ' = ', $subfield->value; } Subfield iterators are accessible through the subfields member of field objects. ==== Field iterators ==== [% FOREACH field IN record.f500s %] [% field.all %] [% END %] foreach my $field ($record->f500s) { print $field->all; } Field iterators are accessible by adding an 's' to the end of field names: f500s, etc. ==== Section iterators ==== [% FOREACH field IN record.f5xxs %] [% field.all %] [% END %] foreach my $field ($record->f5xxs) { print $field->all; } All the fields in a section (identified by the first digit of the tag) can be accessed with 'fNxxs' and then iterated through. ==== Complete field list ==== [% FOREACH field IN record.fields %] [% field.all %] [% END %] foreach my $field ($record->fields) { print $field->all; } All the fields in a record can be accessed via the fields object method. -- You are receiving this mail because: You are watching all bug changes. _______________________________________________ Koha-bugs mailing list [email protected] http://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-bugs website : http://www.koha-community.org/ git : http://git.koha-community.org/ bugs : http://bugs.koha-community.org/
