From cbc1f64d2e96e244f0b033a27dd64c898b090da9 Mon Sep 17 00:00:00 2001 From: Dan Scott Date: Wed, 7 Nov 2012 15:15:12 -0500 Subject: [PATCH] TPAC: The 659 field is full of garbage in Conifer Thus, prevent it from displaying. (Not sure why Evergreen treats it as a Genre field by default, as it is reserved for local use per normal MARC definitions...) Signed-off-by: Dan Scott --- .../opac/parts/record/subjects.tt2 | 75 ++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 Open-ILS/src/templates_conifer/opac/parts/record/subjects.tt2 diff --git a/Open-ILS/src/templates_conifer/opac/parts/record/subjects.tt2 b/Open-ILS/src/templates_conifer/opac/parts/record/subjects.tt2 new file mode 100644 index 0000000000..3cb7bfd46b --- /dev/null +++ b/Open-ILS/src/templates_conifer/opac/parts/record/subjects.tt2 @@ -0,0 +1,75 @@ +[% + subjects = [ + { + label => l('Subject: '), + xpath => '//*[@tag="600" or @tag="610" or @tag="611" or @tag="630" or @tag="650" or @tag="651"]' + }, { + label => l('Genre: '), + xpath => '//*[@tag="655"]|//*[@tag="659"]' + }, { + label => l('Topic Heading: '), + xpath => '//*[@tag="690"]' + }, { + label => l('Geographic Setting: '), + xpath => '//*[@tag="691"]' + }, { + label => l('Biographical Subject: '), + xpath => '//*[@tag="692"]' + }, { + label => l('Character Attributes: '), + xpath => '//*[@tag="693"]' + }, { + label => l('Setting: '), + xpath => '//*[@tag="698"]' + }, { + label => l('Time Period: '), + xpath => '//*[@tag="699"]' + } + ]; + + BLOCK render_subject; + xpath = xpath || '//*[starts-with(@tag,"6")]'; + FOR node IN ctx.marc_xml.findnodes(xpath); + tag = node.getAttribute('tag'); + NEXT IF tag.match('659'); # Local use, and ours is garbage + all_terms = []; + FOR subfield IN node.childNodes; + NEXT UNLESS subfield.nodeName == "subfield"; + code = subfield.getAttribute('code'); + NEXT UNLESS code.match('[a-z]'); + IF code.match('[vxyz]'); " > "; END; + # at this point, we actually have a partial term to use. + single_term = subfield.textContent | html; + all_terms.push(subfield.textContent); + total_term = all_terms.join(" ").replace('\s+$', ''); + %] +[% single_term %] + [%- END; + IF all_terms.size; "
"; END; + END; + END +%] + +[% BLOCK render_all_subjects; + FOREACH subj IN subjects; + content = PROCESS render_subject(xpath=subj.xpath); + IF content.match('\S'); +%] + + + + + + + +
[% subj.label %][% content %]
+ [%- END; %] + [%- END; %] +[%- END %] + +[%- subject_html = PROCESS render_all_subjects; + IF subject_html.length > 0; +%] + +[%- subject_html %] +[%- END %] -- 2.11.0