source: gs3-extensions/solr/trunk/src/conf/velocity/VM_global_library.vm@ 29135

Last change on this file since 29135 was 29135, checked in by ak19, 10 years ago

Part of port from lucene3.3.0 to lucene4.7.2. Solr related. conf and lib folders for solr4.7.2.

File size: 6.1 KB
Line 
1#**
2 * Global macros used by other templates.
3 * This file must be named VM_global_library.vm
4 * in order for Velocity to find it.
5 *#
6
7#macro(param $key)$request.params.get($key)#end
8
9#macro(url_root)/solr#end
10
11## TODO: s/url_for_solr/url_for_core/ and s/url_root/url_for_solr/
12#macro(core_name)$request.core.name#end
13#macro(url_for_solr)#{url_root}#if($request.core.name != "")/$request.core.name#end#end
14#macro(url_for_home)#url_for_solr/browse#end
15
16#macro(q)&q=$!{esc.url($params.get('q'))}#end
17
18#macro(fqs $p)#foreach($fq in $p)#if($velocityCount>1)&#{end}fq=$esc.url($fq)#end#end
19
20#macro(debug)#if($request.params.get('debugQuery'))&debugQuery=true#end#end
21
22#macro(boostPrice)#if($request.params.get('bf') == 'price')&bf=price#end#end
23
24#macro(annotate)#if($request.params.get('annotateBrowse'))&annotateBrowse=true#end#end
25
26#macro(annTitle $msg)#if($annotate == true)title="$msg"#end#end
27
28#macro(spatial)#if($request.params.get('sfield'))&sfield=store#end#if($request.params.get('pt'))&pt=$request.params.get('pt')#end#if($request.params.get('d'))&d=$request.params.get('d')#end#end
29
30#macro(qOpts)#set($queryOpts = $request.params.get("queryOpts"))#if($queryOpts && $queryOpts != "")&queryOpts=$queryOpts#end#end
31
32#macro(group)#if($request.params.getBool("group") == true)&group=true#end#if($request.params.get("group.field"))#foreach($grp in $request.params.getParams('group.field'))&group.field=$grp#end#end#end
33
34#macro(sort $p)#if($p)#foreach($s in $p)&sort=$esc.url($s)#end#end#end
35
36#macro(lensNoQ)?#if($request.params.getParams('fq') and $list.size($request.params.getParams('fq')) > 0)&#fqs($request.params.getParams('fq'))#end#sort($request.params.getParams('sort'))#debug#boostPrice#annotate#spatial#qOpts#group#end
37#macro(lens)#lensNoQ#q#end
38
39
40#macro(url_for_lens)#{url_for_home}#lens#end
41
42#macro(url_for_start $start)#url_for_home#lens&start=$start#end
43
44#macro(url_for_filters $p)#url_for_home?#q#boostPrice#spatial#qOpts#if($list.size($p) > 0)&#fqs($p)#end#debug#end
45
46#macro(url_for_nested_facet_query $field)#url_for_home#lens&fq=$esc.url($field)#end
47
48## TODO: convert to use {!raw f=$field}$value (with escaping of course)
49#macro(url_for_facet_filter $field $value)#url_for_home#lens&fq=$esc.url($field):%22$esc.url($value)%22#end
50
51#macro(url_for_facet_date_filter $field $value)#url_for_home#lens&fq=$esc.url($field):$esc.url($value)#end
52
53#macro(url_for_facet_range_filter $field $value)#url_for_home#lens&fq=$esc.url($field):$esc.url($value)#end
54
55
56#macro(link_to_previous_page $text)
57 #if($page.current_page_number > 1)
58 #set($prev_start = $page.start - $page.results_per_page)
59 <a class="prev-page" href="#url_for_start($prev_start)">$text</a>
60 #end
61#end
62
63#macro(link_to_next_page $text)
64 #if($page.current_page_number < $page.page_count)
65 #set($next_start = $page.start + $page.results_per_page)
66 <a class="next-page" href="#url_for_start($next_start)">$text</a>
67 #end
68#end
69
70#macro(link_to_page $page_number $text)
71 #if($page_number == $page.current_page_number)
72 $text
73 #else
74 #if($page_number <= $page.page_count)
75 #set($page_start = $page_number * $page.results_per_page - $page.results_per_page)
76 <a class="page" href="#url_for_start($page_start)">$text</a>
77 #end
78 #end
79#end
80
81#macro(display_facet_query $field, $display, $fieldName)
82 #if($field.size() > 0)
83 <span class="facet-field">$display</span>
84 <ul>
85 #foreach ($facet in $field)
86 #if ($facet.value > 0)
87 #set($facetURL = "#url_for_nested_facet_query($facet.key)")
88 #if ($facetURL != '')
89 <li><a href="$facetURL">$facet.key</a> ($facet.value)</li>
90 #end
91 #end
92 #end
93 </ul>
94 #end
95#end
96
97
98#macro(display_facet_range $field, $display, $fieldName, $start, $end, $gap, $before, $after)
99 <span class="facet-field">$display</span>
100 <ul>
101 #if($before && $before != "")
102 #set($value = "[* TO " + "#format_value($start)" + "}")
103 #set($facetURL = "#url_for_facet_range_filter($fieldName, $value)")
104 <li><a href="$facetURL">Less than #format_value($start)</a> ($before)</li>
105 #end
106 #foreach ($facet in $field)
107 #set($rangeEnd = "#range_get_to_value($facet.key, $gap)")
108 #set($value = "[" + $facet.key + " TO " + $rangeEnd + "}")
109 #set($facetURL = "#url_for_facet_range_filter($fieldName, $value)")
110 #if ($facetURL != '')
111 <li><a href="$facetURL">$facet.key - #format_value($rangeEnd)</a> ($facet.value)</li>
112 #end
113 #end
114 #if($end && $end != "" && $after > 0)
115 #set($value = "[" + "#format_value($end)" + " TO *}")
116 #set($facetURL = "#url_for_facet_range_filter($fieldName, $value)")
117 <li><a href="$facetURL">More than #format_value($end)</a> ($after)</li>
118 #end
119 </ul>
120#end
121
122## $pivots is a list of facet_pivot
123#macro(display_facet_pivot $pivots, $display)
124 #if($pivots.size() > 0)
125 <span class="facet-field">$display</span>
126 <ul>
127 #foreach ($pivot in $pivots)
128 #foreach ($entry in $pivot.value)
129 <a href="#url_for_facet_filter($entry.field, $entry.value)">$entry.field::$entry.value</a> ($entry.count)
130 <ul>
131 #foreach($nest in $entry.pivot)
132 <a href="#url_for_facet_filter($entry.field, $entry.value)&fq=$esc.url($nest.field):%22$esc.url($nest.value)%22">$nest.field::$nest.value</a> ($nest.count)
133 #end
134 </ul>
135 #end
136 #end
137 </ul>
138 #end
139#end
140
141#macro(field $f)
142 #if($response.response.highlighting.get($docId).get($f).get(0))
143 #set($pad = "")
144 #foreach($v in $response.response.highlighting.get($docId).get($f))
145$pad$v##
146 #set($pad = " ... ")
147 #end
148 #else
149 #foreach($v in $doc.getFieldValues($f))
150$v##
151 #end
152 #end
153#end
154
155#macro(utc_date $theDate)
156$date.format("yyyy-MM-dd'T'HH:mm:ss'Z'",$theDate,$date.getLocale(),$date.getTimeZone().getTimeZone("UTC"))##
157#end
158
159#macro(format_value $val)
160#if(${val.class.name} == "java.util.Date")
161#utc_date($val)##
162#else
163$val##
164#end
165#end
166
167#macro(range_get_to_value $inval, $gapval)
168#if(${gapval.class.name} == "java.lang.String")
169$inval$gapval##
170#elseif(${gapval.class.name} == "java.lang.Float" || ${inval.class.name} == "java.lang.Float")
171$math.toDouble($math.add($inval,$gapval))##
172#else
173$math.add($inval,$gapval)##
174#end
175#end
Note: See TracBrowser for help on using the repository browser.