[Koha-bugs] [Bug 9202] TT plugin to allow direct display of MARC::Records
bugzilla-daemon at bugs.koha-community.org
bugzilla-daemon at bugs.koha-community.org
Tue Dec 4 00:38:12 CET 2012
http://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=9202
--- Comment #1 from Jared Camins-Esakov <jcamins at cpbibliography.com> ---
Created attachment 13863
-->
http://bugs.koha-community.org/bugzilla3/attachment.cgi?id=13863&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.
More information about the Koha-bugs
mailing list