]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/templates/opac-new/parts/record/series.tt2
LP#1778972: (follow-up) remove a NFPL-specific template
[Evergreen.git] / Open-ILS / src / templates / opac-new / parts / record / series.tt2
1 [%- 
2     series_tags = ['440', '490', '800', '810', '811', '830', '694']; 
3     loc = ctx.search_ou;
4
5 BLOCK render_series;
6     results = [];
7     IF attrs.hl_display_fields.series_title.size;
8     hl_field = attrs.hl_field;
9         FOREACH s IN attrs.hl_display_fields.series_title;
10             search_term = s.value.replace('[#"^$\+\-,\.:;&|\[\]()]', ' ').replace('\s+$', '') | html;
11     
12             url = mkurl(ctx.opac_root _ '/results',
13                 { qtype=>'series', query=>search_term }, stop_parms.merge(expert_search_parms, general_search_parms, browse_search_parms, facet_search_parms)
14             );
15             series = '<a href="' _ url _ '">' _ s.$hl_field _ '</a> ';
16             results.push(series);
17         END;
18     ELSE;
19         FOR tag IN series_tags;
20             FOR node IN ctx.marc_xml.findnodes('//*[@tag="' _ tag _ '"]');
21                 all_terms = [];
22                 graphics = [];
23                 series = '';
24                 FOR subfield IN node.childNodes;
25                     NEXT UNLESS subfield.nodeName == "subfield";
26                     code = subfield.getAttribute('code');
27                     IF code == '6';
28                        linked_fields = [subfield.textContent()];
29                        target_field = node.getAttribute('tag');
30                        get_linked_880s;
31                     END;
32                     NEXT UNLESS code.match('[a-z]');
33                     # at this point, we actually have a partial term to use.
34                     single_term = subfield.textContent | html;
35                     all_terms.push(subfield.textContent.replace('[#"^$\+\-,\.:;&|\[\]()]', ' '));
36                     total_term = all_terms.join(" ").replace('\s+$', '');
37     
38                     url = mkurl(ctx.opac_root _ '/results',
39                         { qtype=>'series', query=>total_term }, stop_parms.merge(expert_search_parms, general_search_parms, browse_search_parms, facet_search_parms)
40                     );
41                     series = series _ '<a href="' _ url _ '">' _ single_term _ '</a> ';
42                 END;
43                 FOREACH link880 IN graphics;
44                     link = link880.value | html;
45                     series = series _ '<div class="graphic880"' _ link880.dir _ '>' _ link _ '</div>';
46                 END;
47                 results.push(series);
48             END;
49         END; 
50     END;
51     FOR entry IN results;
52     -%]
53     <li class='rdetail_series_value'>[% entry %]</li>
54     [%- END;
55 END;
56 %]
57
58 [%- series_anchors = PROCESS render_series;
59     IF series_anchors.length > 0; %]
60 <h2 class='rdetail_related_series'>[% l('Search for related items by series') %]</h2>
61 <ul>
62     [% series_anchors %]
63 </ul>
64 [%- END %]