]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/templates/opac/parts/record/series.tt2
LP2061136 - Stamping 1405 DB upgrade script
[working/Evergreen.git] / Open-ILS / src / templates / opac / 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+$', '');
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             filtered_hl_field = s.$hl_field;
16             series = '<a href="' _ url _ '">' _ filtered_hl_field _ '</a> ';
17             results.push(series);
18         END;
19     ELSE;
20         FOR tag IN series_tags;
21             FOR node IN ctx.marc_xml.findnodes('//*[@tag="' _ tag _ '"]');
22                 all_terms = [];
23                 graphics = [];
24                 series = '';
25                 FOR subfield IN node.childNodes;
26                     NEXT UNLESS subfield.nodeName == "subfield";
27                     code = subfield.getAttribute('code');
28                     IF code == '6';
29                        linked_fields = [subfield.textContent()];
30                        target_field = node.getAttribute('tag');
31                        get_linked_880s;
32                     END;
33                     NEXT UNLESS code.match('[a-z]');
34                     # at this point, we actually have a partial term to use.
35                     single_term = subfield.textContent | html;
36                     all_terms.push(subfield.textContent.replace('[#"^$\+\-,\.:;&|\[\]()]', ' '));
37                     total_term = all_terms.join(" ").replace('\s+$', '');
38     
39                     url = mkurl(ctx.opac_root _ '/results',
40                         { qtype=>'series', query=>total_term }, stop_parms.merge(expert_search_parms, general_search_parms, browse_search_parms, facet_search_parms)
41                     );
42                     series = series _ '<a href="' _ url _ '">' _ single_term _ '</a> ';
43                 END;
44                 FOREACH link880 IN graphics;
45                     link = link880.value | html;
46                     series = series _ '<div class="graphic880"' _ link880.dir _ '>' _ link _ '</div>';
47                 END;
48                 results.push(series);
49             END;
50         END; 
51     END;
52     FOR entry IN results;
53     -%]
54     <li class='rdetail_series_value'>[% entry %]</li>
55     [%- END;
56 END;
57 %]
58
59 [%- series_anchors = PROCESS render_series;
60     IF series_anchors.length > 0; %]
61 <h2 class='rdetail_related_series'>[% l('Search for related items by series') %]</h2>
62 <ul>
63     [% series_anchors %]
64 </ul>
65 [%- END %]