[%- series_tags = ['440', '490', '800', '810', '811', '830', '694']; loc = ctx.search_ou; BLOCK render_series; results = []; FOR tag IN series_tags; FOR node IN ctx.marc_xml.findnodes('//*[@tag="' _ tag _ '"]'); all_terms = []; graphics = []; series = ''; FOR subfield IN node.childNodes; NEXT UNLESS subfield.nodeName == "subfield"; code = subfield.getAttribute('code'); IF code == '6'; linked_fields = [subfield.textContent()]; target_field = node.getAttribute('tag'); get_linked_880s; END; NEXT UNLESS code.match('[a-z]'); # at this point, we actually have a partial term to use. single_term = subfield.textContent | html; all_terms.push(subfield.textContent.replace('[#"^$\+\-,\.:;&|\[\]()]', '')); total_term = all_terms.join(" ").replace('\s+$', ''); url = mkurl(ctx.opac_root _ '/results', { qtype=>'series', query=>total_term }, stop_parms ); series = series _ '' _ single_term _ ' '; END; FOREACH link880 IN graphics; link = link880.value | html; series = series _ '
' _ link _ '
'; END; results.push(series); END; END; FOR entry IN results; -%]
  • [% entry %]
  • [%- END; END; %] [%- series_anchors = PROCESS render_series; IF series_anchors.length > 0; %] [%- END %]