source: main/trunk/greenstone2/macros/query.dm@ 22876

Last change on this file since 22876 was 22876, checked in by kjdon, 14 years ago

in getsearchargs, need to test for sql query before adding argsqlfqf as otherwise its not defined and the javascript doesn't work.

  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 28.0 KB
Line 
1# this file must be UTF-8 encoded
2package query
3
4
5#######################################################################
6# Macros whose values are set from within the server at runtime. These
7# are here only for reference and to set default values if required.
8#######################################################################
9
10_quotedquery_ {}
11_freqmsg_ {}
12_stopwordsmsg_ {}
13_resultline_ {}
14_thisfirst_ {}
15_thislast_ {}
16_nextfirst_ {}
17_nextlast_ {}
18_prevfirst_ {}
19_prevlast_ {}
20_searchhistorylist_ {}
21#_histvalue0_ to _histvalue19_
22_advformlist_ {}
23_regformlist_ {}
24_sqladvformlist_ {}
25_sqlregformlist_ {}
26#_fqfselection_ {}
27
28
29#######################################################################
30# icons
31#######################################################################
32
33_queryresultsbar_ {
34<div class="divbar">
35<p class="navbar">_texthresults_</p>
36</div>
37}
38
39_searchhistorybar_ {
40<div class="divbar">
41<p class="navbar">_texticonsearchhistorybar_</p>
42</div>
43}
44
45
46# _iconnext_ and _iconprev_ are overridden in this package as we
47# don't want alt text here
48_iconnext_{<img src="_httpiconmore_" width="_widthmore_" height="_heightmore_" border="0" align="top">}
49_iconnext_ [v=1] {}
50_iconprev_{<img src="_httpiconless_" width="_widthless_" height="_heightless_" border="0" align="top">}
51_iconprev_ [v=1] {}
52
53# the small squares for search history
54## " " ## handmade ## mstds ##
55_httpiconmstdsqrof_ {_httpimg_/mstdsof.gif}
56_httpiconmstdsqron_ {_httpimg_/mstdson.gif}
57_widthmstdsqrx_ {13}
58_heightmstdsqrx_ {13}
59
60#######################################################################
61# images
62#######################################################################
63
64# _imagethispage_ set in nav_css/nav_ns4 macro files
65
66#the buttons for the search history entries
67# takes one arg - the entry number (0-num entries)
68_imagehistbutton_ {<a href="_httpquery_" onMouseover="roll('histbutton_1_',1);" onMouseOut="roll('histbutton_1_',0);" onClick="inputQuery(histvalue_1_); return false;"><img name="histbutton_1_" src="_httpiconmstdsqrof_" onLoad="gbutton(this,'_httpiconmstdsqron_');" border="0" alt="_textusequery_" title="_textusequery_"></a>}
69
70
71#######################################################################
72# scripts (and some macros for the scripts)
73#######################################################################
74
75_pagescriptextra_ {_If_("_cgiargqt_" ge "1", _formpagescriptextra_, _selectpagescriptextra_)
76_If_("_cgiarghd_" ne "0",_historypagescriptextra_) }
77
78_selectpagescriptextra_{_If_("_cgiargqto_" eq "2", _formpagescriptextra_,_dummypagescriptextra_)}
79_dummypagescriptextra_{function initialize() \{
80\} }
81_formpagescriptextra_ {
82// query scripts generated by \_query:pagescriptextra\_
83
84_standardfunctions_
85_formfunctions_
86_searchfunctions_
87
88function getsearchargs () \{
89
90 var args="";
91 args = "&fqa=0&fqv="+argfqv+"&fqf="+argfqf;
92 _If_(_cgiargb_,
93 args += "&fqk="+argfqk+"&fqs="+argfqs+"&fqc="+argfqc;
94 )
95 _If_("_cgiarga_" eq "sqlq",args += "&sqlfqf="+argsqlfqf + "&sqlfqc="+argsqlfqc;)
96
97 return args;
98\}
99
100
101
102function getqueryargs () \{
103 var args = "&fqa=1"+"&q="+argq+"&fqv="+argfqv+"&fqf="+argfqf+
104 "&fqk="+argfqk+"&fqs="+argfqs+"&fqc="+argfqc;
105 _If_("_cgiarga_" eq "sqlq",args += "&sqlfqf="+argsqlfqf + "&sqlfqc="+argsqlfqc;)
106 return args;
107\}
108
109}
110
111_historypagescriptextra_{
112
113var histvalue0='_histvalue0_';
114var histvalue1='_histvalue1_';
115var histvalue2='_histvalue2_';
116var histvalue3='_histvalue3_';
117var histvalue4='_histvalue4_';
118var histvalue5='_histvalue5_';
119var histvalue6='_histvalue6_';
120var histvalue7='_histvalue7_';
121var histvalue8='_histvalue8_';
122var histvalue9='_histvalue9_';
123var histvalue10='_histvalue10_';
124var histvalue11='_histvalue11_';
125var histvalue12='_histvalue12_';
126var histvalue13='_histvalue13_';
127var histvalue14='_histvalue14_';
128var histvalue15='_histvalue15_';
129var histvalue16='_histvalue16_';
130var histvalue17='_histvalue17_';
131var histvalue18='_histvalue18_';
132var histvalue19='_histvalue19_';
133
134function inputQuery(value) \{
135 if ("_cgiargqt_" == "0") \{ // text search
136 document.QueryForm.q.value += " "+value;
137 document.QueryForm.q.focus();
138 \}
139 else \{
140 if ("_cgiargb_" == "1") \{ // advanced query
141 document.QueryForm.q.value += " "+value;
142 document.QueryForm.q.focus();
143 updateq();
144 \}
145 else \{ // simple form search
146 // do something here, what??
147 \}
148 \}
149\}
150
151}
152
153_standardfunctions_{
154
155 function getstdargs() \{
156
157 stdarg = "";
158 _If_(_gselection_,_getgarg_)
159 _If_(_jselection_,_getjarg_)
160 _If_(_nselection_,_getnarg_)
161 _If_(_sqlsfselection_,_getsqlsfarg_)
162 _If_(_sfselection_,_getsfarg_)
163
164 if (document.QueryForm.t != null) \{
165 value = document.QueryForm.t.options[document.QueryForm.t.selectedIndex].value;
166 if (value != "_cgiargt_") stdarg += "&t="+value;
167 \}
168 stdarg += "&r=1&hs=1";
169 return stdarg;
170 \}
171
172}
173
174_getgarg_{
175 if (document.QueryForm.g!= null) \{
176 value = document.QueryForm.g.options[document.QueryForm.g.selectedIndex].value;
177 if (value != "_cgiargg_") stdarg += "&g="+value;
178 \}
179}
180
181_getjarg_{
182 value = document.QueryForm.j.options[document.QueryForm.j.selectedIndex].value;
183 if (value != "_cgiargj_") stdarg += "&j="+value;
184}
185
186_getnarg_{
187 value = document.QueryForm.n.options[document.QueryForm.n.selectedIndex].value;
188 if (value != "_cgiargn_") stdarg += "&n="+value;
189}
190
191# currently only supported in lucene
192_getsfarg_{
193_If_("_cgiarga__cgiargct_" eq "q2",
194 value = document.QueryForm.sf.options[document.QueryForm.sf.selectedIndex].value;
195 if (value != "_cgiargsf_") stdarg += "&sf="+value;
196)
197}
198
199# only when in sql mode
200_getsqlsfarg_{
201_If_("_cgiarga__cgiargqt_" eq "sqlq2",
202 value = document.QueryForm.sqlsf.options[document.QueryForm.sqlsf.selectedIndex].value;
203 if (value != "_cgiargsqlsf_") stdarg += "&sqlsf="+value;
204)
205}
206
207_formfunctions_{
208
209argfqf="_cgiargfqf_";
210argfqv="_cgiargfqv_";
211argfqk="_cgiargfqk_";
212argfqs="_cgiargfqs_";
213argfqc="_cgiargfqc_";
214_If_("_cgiarga_" eq "sqlq",
215argsqlfqf="_cgiargsqlfqf_";
216argsqlfqc="_cgiargsqlfqc_";
217)
218argq = "";
219
220function initialize () \{
221
222 if (document.QueryForm.fqf != null) \{initfqf(); \}
223 if (document.QueryForm.fqv != null) \{initfqv(); \}
224 if (document.QueryForm.fqs != null) \{initfqs(); \}
225 if (document.QueryForm.fqk != null) \{initfqk(); \}
226 if (document.QueryForm.fqc != null) \{initfqc(); \}
227_If_("_cgiarga_" eq "sqlq",
228 if (document.QueryForm.sqlfqf != null) \{initsqlfqf(); \}
229 if (document.QueryForm.sqlfqc != null) \{initsqlfqc(); \}
230)
231 if (document.QueryForm.q != null) \{initq(); \}
232\}
233
234// makes a form submit itself when enter is pressed in a text field
235function entersubmit(event) \{
236
237 if (window.event && window.event.keyCode == 13) \{
238 beginSearch();
239 \} else \{
240 if (event && event.which == 13) \{
241 beginSearch();
242 \} else \{
243 return true;
244 \}
245 \}
246\}
247
248
249// fqf - the field selection box
250function initfqf() \{
251 var i;
252 fqf = argfqf.split(",");
253 num_opts = document.QueryForm.fqf[0].options.length; // assumes all have the same options
254 for (i=0; i<fqf.length && i<document.QueryForm.fqf.length; i++) \{
255 if (fqf[i] != "")\{
256 for (j=0;j<num_opts;j++) \{
257 if (fqf[i]== document.QueryForm.fqf[i].options[j].value) \{
258 document.QueryForm.fqf[i].options[j].selected = true;
259 break;
260 \}
261 \}
262 \}
263 \}
264 if (fqf.length < document.QueryForm.fqf.length) \{ // initialize remaining ones
265 for (i=fqf.length;i<document.QueryForm.fqf.length;i++) \{
266 var z=i;
267 while (z >= num_opts) \{
268 z = z-(num_opts);
269 \}
270 document.QueryForm.fqf[i].options[z].selected = true;
271
272 \}
273 \}
274 updatefqf();
275
276\}
277
278function updatefqf() \{
279
280 var i;
281 argfqf = "";
282 var j = document.QueryForm.fqf[0].selectedIndex;
283 argfqf += document.QueryForm.fqf[0].options[j].value;
284 for (i=1; i<document.QueryForm.fqf.length;i++) \{
285 j = document.QueryForm.fqf[i].selectedIndex;
286 argfqf += "," + document.QueryForm.fqf[i].options[j].value;
287 \}
288
289\}
290
291
292function clearfqf() \{
293 var i;
294 for (i=0;i<document.QueryForm.fqf.length;i++) \{
295 var z = i;
296 if (i >= document.QueryForm.fqf[i].options.length) z = z-document.QueryForm.fqf[i].options.length;
297 document.QueryForm.fqf[i].options[z].selected = true;
298 \}
299 updatefqf();
300\}
301
302
303// sqlfqf - the field selection box
304function initsqlfqf() \{
305 var i;
306 sqlfqf = argsqlfqf.split(",");
307 num_opts = document.QueryForm.sqlfqf[0].options.length; // assumes all have the same options
308 for (i=0; i<sqlfqf.length && i<document.QueryForm.sqlfqf.length; i++) \{
309 if (sqlfqf[i] != "")\{
310 for (j=0;j<num_opts;j++) \{
311 if (sqlfqf[i]== document.QueryForm.sqlfqf[i].options[j].value) \{
312 document.QueryForm.sqlfqf[i].options[j].selected = true;
313 break;
314 \}
315 \}
316 \}
317 \}
318 if (sqlfqf.length < document.QueryForm.sqlfqf.length) \{ // initialize remaining ones
319 for (i=sqlfqf.length;i<document.QueryForm.sqlfqf.length;i++) \{
320 var z=i;
321 while (z >= num_opts) \{
322 z = z-(num_opts);
323 \}
324 document.QueryForm.sqlfqf[i].options[z].selected = true;
325
326 \}
327 \}
328 updatesqlfqf();
329
330\}
331
332function updatesqlfqf() \{
333
334 var i;
335 argsqlfqf = "";
336 var j = document.QueryForm.sqlfqf[0].selectedIndex;
337 argsqlfqf += document.QueryForm.sqlfqf[0].options[j].value;
338 for (i=1; i<document.QueryForm.sqlfqf.length;i++) \{
339 j = document.QueryForm.sqlfqf[i].selectedIndex;
340 argsqlfqf += "," + document.QueryForm.sqlfqf[i].options[j].value;
341 \}
342
343\}
344
345
346function clearsqlfqf() \{
347 var i;
348 for (i=0;i<document.QueryForm.sqlfqf.length;i++) \{
349 var z = i;
350 if (i >= document.QueryForm.sqlfqf[i].options.length) z = z-document.QueryForm.sqlfqf[i].options.length;
351 document.QueryForm.sqlfqf[i].options[z].selected = true;
352 \}
353 updatesqlfqf();
354\}
355
356
357
358
359// fqc - the boolean operator selection box
360function initfqc() \{
361 var i,j;
362 fqc = argfqc.split(",");
363 if (_cgiargfqn_ == 2) \{ // there will only be one fqc element
364 for (j=0;j<document.QueryForm.fqc.options.length;j++) \{
365 if (fqc[0] == document.QueryForm.fqc.options[j].value) \{
366 document.QueryForm.fqc.options[j].selected = true;
367 break;
368 \}
369 \}
370 \}
371 else \{
372 for (i=0; i<fqc.length;i++) \{
373 for (j=0;j<document.QueryForm.fqc[i].options.length;j++) \{
374 if (fqc[i] == document.QueryForm.fqc[i].options[j].value) \{
375 document.QueryForm.fqc[i].options[j].selected = true;
376 break;
377 \}
378 \}
379 \}
380 \}
381 updatefqc();
382
383\}
384
385function updatefqc() \{
386
387 var i,j;
388 argfqc = "";
389 if (_cgiargfqn_ == 2) \{
390 j = document.QueryForm.fqc.selectedIndex;
391 argfqc += document.QueryForm.fqc.options[j].value;
392 \}
393 else \{
394 j = document.QueryForm.fqc[0].selectedIndex;
395 argfqc += document.QueryForm.fqc[0].options[j].value;
396 for (i=1;i<document.QueryForm.fqc.length;i++) \{
397 j = document.QueryForm.fqc[i].selectedIndex;
398 argfqc += "," + document.QueryForm.fqc[i].options[j].value;
399 \}
400 \}
401
402\}
403
404
405function clearfqc() \{
406
407 var i;
408 if (_cgiargfqn_ == 2) \{
409 document.QueryForm.fqc.options[0].selected = true;
410 \}
411 else \{
412 for (i=0; i<document.QueryForm.fqc.length; i++) \{
413 document.QueryForm.fqc[i].options[0].selected = true;
414 \}
415 \}
416 updatefqc();
417\}
418
419
420
421// sqlfqc - the SQL operator selection box
422function initsqlfqc() \{
423 var i,j;
424 sqlfqc = argsqlfqc.split(",");
425 if (_cgiargsqlfqn_ == 2) \{ // there will only be one sqlfqc element
426 for (j=0;j<document.QueryForm.sqlfqc.options.length;j++) \{
427 if (sqlfqc[0] == document.QueryForm.sqlfqc.options[j].value) \{
428 document.QueryForm.sqlfqc.options[j].selected = true;
429 break;
430 \}
431 \}
432 \}
433 else \{
434 for (i=0; i<sqlfqc.length;i++) \{
435 for (j=0;j<document.QueryForm.sqlfqc[i].options.length;j++) \{
436 if (sqlfqc[i] == document.QueryForm.sqlfqc[i].options[j].value) \{
437 document.QueryForm.sqlfqc[i].options[j].selected = true;
438 break;
439 \}
440 \}
441 \}
442 \}
443 updatesqlfqc();
444
445\}
446
447function updatesqlfqc() \{
448
449 var i,j;
450 argsqlfqc = "";
451 if (_cgiargsqlfqn_ == 2) \{
452 j = document.QueryForm.sqlfqc.selectedIndex;
453 argsqlfqc += document.QueryForm.sqlfqc.options[j].value;
454 \}
455 else \{
456 j = document.QueryForm.sqlfqc[0].selectedIndex;
457 argsqlfqc += document.QueryForm.sqlfqc[0].options[j].value;
458 for (i=1;i<document.QueryForm.sqlfqc.length;i++) \{
459 j = document.QueryForm.sqlfqc[i].selectedIndex;
460 argsqlfqc += "," + document.QueryForm.sqlfqc[i].options[j].value;
461 \}
462 \}
463
464\}
465
466
467function clearsqlfqc() \{
468
469 var i;
470 if (_cgiargsqlfqn_ == 2) \{
471 document.QueryForm.sqlfqc.options[0].selected = true;
472 \}
473 else \{
474 for (i=0; i<document.QueryForm.sqlfqc.length; i++) \{
475 document.QueryForm.sqlfqc[i].options[0].selected = true;
476 \}
477 \}
478 updatesqlfqc();
479\}
480
481
482
483
484// fqv - the query word/phrase text box
485function initfqv() \{
486 var i;
487 fqv= argfqv.split(",");
488 for (i=0; i<fqv.length && i<document.QueryForm.fqv.length; i++) \{
489 document.QueryForm.fqv[i].value = fqv[i];
490 \}
491 updatefqv();
492
493
494\}
495
496 //argfqv += escape(format(document.QueryForm.fqv[0].value));
497
498function updatefqv() \{
499 var i;
500 argfqv="";
501 argfqv += format(document.QueryForm.fqv[0].value);
502 for (i=1; i<document.QueryForm.fqv.length;i++) \{
503 argfqv += ",";
504 argfqv += format(document.QueryForm.fqv[i].value);
505 \}
506\}
507
508function clearfqv() \{
509 var i;
510 for (i=0; i< document.QueryForm.fqv.length;i++) \{
511 document.QueryForm.fqv[i].value = "";
512 \}
513 updatefqv();
514\}
515
516// fqs - the stemming checkboxes
517function initfqs() \{
518
519 var i;
520 fqs = argfqs.split(",");
521 for (i=0; i<fqs.length; i++) \{
522 if (fqs[i]=="1") \{
523 document.QueryForm.fqs[i].checked = true;
524 \}
525 \}
526 updatefqs();
527
528\}
529
530function updatefqs() \{
531 argfqs="";
532 if (document.QueryForm.fqs[0].checked) \{
533 argfqs += "1";
534 \}
535 else \{
536 argfqs += "0";
537 \}
538 var i;
539 for (i=1; i<document.QueryForm.fqs.length; i++) \{
540 if (document.QueryForm.fqs[i].checked) \{
541 argfqs += ",1";
542 \}
543 else \{
544 argfqs += ",0";
545 \}
546 \}
547\}
548
549
550function clearfqs() \{
551 var i;
552 for (i=0; i<document.QueryForm.fqs.length; i++) \{
553 document.QueryForm.fqs[i].checked = false;
554 \}
555 updatefqs();
556\}
557
558// kqk - the casefolding checkboxes
559function initfqk() \{
560 var i;
561 fqk = argfqk.split(",");
562 for (i=0; i<fqk.length; i++) \{
563 if (fqk[i]=="1") \{
564 document.QueryForm.fqk[i].checked = true;
565 \}
566 \}
567 updatefqk();
568
569\}
570
571
572function updatefqk() \{
573 argfqk="";
574 if (document.QueryForm.fqk[0].checked) \{
575 argfqk += "1";
576 \}
577 else \{
578 argfqk += "0";
579 \}
580 var i;
581 for (i=1; i<document.QueryForm.fqk.length; i++) \{
582 if (document.QueryForm.fqk[i].checked) \{
583 argfqk += ",1";
584 \}
585 else \{
586 argfqk += ",0";
587 \}
588 \}
589\}
590
591function clearfqk() \{
592 var i;
593 for (i=0; i<document.QueryForm.fqk.length; i++) \{
594 document.QueryForm.fqk[i].checked = false;
595 \}
596 updatefqk();
597\}
598
599// q - the advanced query box
600function initq() \{
601 updateq();
602\}
603
604function updateq() \{
605
606 argq = "";
607 argq += format(document.QueryForm.q.value);
608\}
609
610function clearq() \{
611 document.QueryForm.q.value="";
612\}
613
614
615// convert commas and spaces to plus
616// also convert other illegal characters to %xx codes
617function format(string) \{
618 var str = "" + string;
619 var out = "", flag = 0;
620 var ch = "";
621 var j;
622 for (j = 0; j < str.length; j++) \{
623 ch=str.charAt(j);
624 if (ch == " "|| ch == ",") \{
625 if (flag == 0) \{
626 out += "+";
627 flag=1;
628 \}
629 continue;
630 \}
631 if (ch == ";" || ch == ":" || ch == "/" || ch == "?" ||
632 ch == "@" || ch == "&" || ch == "=" || ch == "#" ||
633 ch == "%") \{
634 out += escape(ch);
635 flag=0;
636 continue;
637 \}
638 out += str.charAt(j);
639 flag=0;
640 \}
641 return out;
642\}
643
644}
645
646#_httpquery_ has a=q&e=compressedargs
647#if adv form, need to set k=0 and s=0
648_advformargs_{_If_(_cgiargb_,&k=0&s=0)}
649
650_searchfunctions_ {
651
652function beginSearch() \{
653 window.location="_httpquery_"+getstdargs()+"_advformargs_"+getsearchargs();
654\}
655
656function runQuery() \{
657 window.location="_httpquery_"+getstdargs()+"_advformargs_"+getqueryargs();
658\}
659
660function clearForm() \{
661 clearfqf();
662_If_("_cgiarga_" eq "sqlq",
663 clearsqlfqf();
664)
665 clearfqv();
666
667 if ("_cgiargb_" == "1") \{
668 clearfqk();
669 clearfqs();
670 clearfqc();
671_If_("_cgiarga_" eq "sqlq",
672 clearsqlfqc();
673)
674 \}
675
676\}
677
678}
679
680#######################################################################
681# headers
682# these are overridden so we can put an onLoad event handler
683# in the <body> tag of this page - for mgpp, form search pages
684#######################################################################
685
686#copied from prefs
687
688_header_ {_cgihead_
689_htmlhead_(class="bgimage" onLoad="initialize();")_startspacer__pagebanner_
690}
691
692# this declaration ends up being the same as style=restrict, never mind
693_header_[v=1] {_cgihead_
694_htmlhead_(onLoad="initialize();")_pagebanner_
695}
696
697#######################################################################
698# page content
699#######################################################################
700
701
702_pagetitle_ {_If_(_cgiargq_,_textquerytitle_,_textnoquerytitle_)}
703
704
705_content_ {
706
707_optnavigationbar_
708<div class="document">
709<div class="queryform">
710
711_If_("_cgiarga_" eq "sqlq",
712
713 _If_("_cgiargqt_" eq "2",_sqlfieldqueryform_,_sqlqueryform_)
714,
715 _If_(_cgiargct_,_selectqueryform_,_queryform_)
716)
717
718</div>
719
720_If_(_searchhistorylist_,<center>_searchhistorybar_</center><br>
721<center>
722_searchhistorylist_
723</center>)
724_If_(_cgiargq_,_queryresultsbar_
725<small>
726_freqmsg_
727_textpostprocess_
728_If_(_stopwordsmsg_,(_stopwordsmsg_))</small><br />
729_resultline_
730,<div class="divbar">&nbsp;</div>)
731}
732
733_selectqueryform_{_If_("_cgiargqt_" ge "1",_fieldqueryform_,_queryform_)}
734
735_queryform_ {
736<!-- query form (\_query:plainqueryform\_) -->
737<form name="QueryForm" method="get" action="_gwcgi_">
738<p>
739<input type="hidden" name="a" value="q">
740<input type="hidden" name="r" value="1">
741<input type="hidden" name="hs" value="1">
742<input type="hidden" name="e" value="_decodedcompressedoptions_">
743_queryformcontent_
744_optdatesearch_
745</p>
746</form>
747<!-- end of query form -->
748}
749
750
751_sqlqueryform_ {
752
753<!-- simple query box that requires you to type SQL where clause directly -->
754<!-- sqlquery form (\_query:plainqueryform\_) -->
755<form name="QueryForm" method="get" action="_gwcgi_">
756<p>
757<input type="hidden" name="a" value="sqlq">
758<input type="hidden" name="r" value="1">
759<input type="hidden" name="hs" value="1">
760<input type="hidden" name="e" value="_decodedcompressedoptions_">
761_sqlqueryformcontent_
762</p>
763</form>
764<!-- end of sqlquery form -->
765}
766
767
768_ifeellucky_ { <br><input type="checkbox" name="ifl" value="1">_textifeellucky_ }
769_useifeellucky_ { } # Set this to _ifeellucky_ if you want this functionality available
770
771_allowformbreak_{</span> <span class="textselect">}
772
773_queryformcontent_{
774<span class="textselect">
775_textselect_
776</span>
777
778<span class="querybox">
779_If_(_cgiargqb_,_largequerybox_,_smallquerybox_)
780_useifeellucky_
781</span>
782}
783
784
785_sqlqueryformcontent_ {
786<span class="querybox">
787_If_(_cgiargqb_,_query:largequerybox_,_query:smallquerybox_)
788_query:useifeellucky_
789</span>
790}
791
792# Automatically set by receptionist if config file switches
793# date searching on
794_optdatesearch_ { }
795
796
797_datesearch_
798{<table><tr><td>
799 <center>
800_textstartdate_
801<input type="text" name="ds" value="_cgiargds_" size="4" maxlength="4">
802<select name="dsbc" value="_cgiargdsbc_" size="1">
803 <option value="0"_If_(_cgiargdsbc_,, selected)>_textad_
804 <option value="1"_If_(_cgiargdsbc_, selected)>_textbc_
805</select>
806_textenddate_
807<input type="text" name="de" value="_cgiargde_" size="4" maxlength="4">
808<select name="debc" size="1">
809 <option value="0" _If_(_cgiargdebc_,, selected)>_textad_
810 <option value="1" _If_(_cgiargdebc_, selected)>_textbc_
811</select>
812</center>
813</td></tr>
814<tr><td>
815_textexplaineras_
816</td></tr>
817</table>
818</center>
819}
820
821_smallquerybox_ {<nobr><input type="text" name="q" value="_cgiargq_" size="50">&nbsp;<input type="submit" value="_textbeginsearch_"></nobr>}
822
823_largequerybox_ {
824<tr><td><textarea name="q" cols="63" rows="10">
825_cgiargq_
826</textarea></td></tr>
827<tr align="right"><td><table>
828<tr><td><input type="submit" value="_textbeginsearch_"></td>
829</tr></table></td></tr>}
830
831
832_fieldqueryform_ {
833<noscript>
834<p><b>_textnojsformwarning_</b></p>
835</noscript>
836<!-- field query form (\_query:fieldqueryform\_) -->
837<form name="QueryForm" method="get" action="_gwcgi_">
838
839<table><tr><td align="left">
840
841_textformselect_
842</td></tr>
843<tr><td>
844_If_(_cgiargb_,_advancedforms_,_simpleforms_)
845</td></tr>
846</table>
847_If_(_cgiargb_,<div class="divbar">&nbsp;</div>
848_advancedformextra_)
849
850</form>
851<!-- end of query form -->
852}
853
854_sqlfieldqueryform_ {
855<noscript>
856<p><b>_textnojsformwarning_</b></p>
857</noscript>
858<!--sql field query form (\_query:fieldqueryform\_) -->
859<form name="QueryForm" method="get" action="_gwcgi_">
860
861<table><tr><td align="left">
862_textformselect_
863</td></tr>
864<tr><td>
865_If_(_cgiargb_,_sqladvancedforms_,_sqlsimpleforms_)
866</td></tr>
867</table>
868_If_(_cgiargb_,<div class="divbar">&nbsp;</div>
869_advancedformextra_)
870
871</form>
872<!-- end of sql query form -->
873}
874
875
876
877_advancedforms_{
878<table border="0" cellspacing="0" cellpadding="0" width="90%">
879<tr><th></th><th align="left">_textwordphrase_</th>_If_("_cgiargct_" eq "1",<th colspan="2"><nobr>_textfoldstem_</nobr></th>)<th align="center">&nbsp;&nbsp;_textinfield_</th></tr>
880_advformlist_
881<tr>
882<td colspan="2" align="left"><input type="button" value="_textclearform_" onClick="clearForm();"></td>
883<td colspan="3" align="right"><input type="button" value="_textbeginsearch_" onClick="beginSearch();"></td>
884</tr>
885</table>
886}
887
888_sqladvancedforms_{
889<table border="0" cellspacing="0" cellpadding="0" width="90%">
890 <tr>
891 <th></th>
892 <th align="left">_textfieldphrase_</th>
893 <th></th>
894 <th align="center">&nbsp;&nbsp;_textinwords_</th>
895 </tr>
896 _sqladvformlist_
897 <tr>
898 <td colspan="2" align="left">
899 <input type="button" value="_textclearform_" onClick="clearForm();">
900 </td>
901 <td colspan="3" align="right">
902 <input type="button" value="_textbeginsearch_" onClick="beginSearch();">
903 </td>
904 </tr>
905</table>
906}
907
908
909
910_advancedformextra_{
911<table>
912<tr><td align="left">_textadvquery_</td></tr>
913<tr><td><textarea name="q" cols="57" rows="3" onChange="updateq();">_cgiargq_</textarea></td>
914<td valign="bottom">
915<input type="button" value="_textrunquery_" onClick="runQuery();"></td></tr>
916</table>
917
918
919_If_("_cgiarga_" eq "sqlq",
920<p>For example:<br>
921<i>
922 element in ('dc.Keywords') AND value='Farming'<br>
923 element in ('dls.Title') AND value LIKE 'F%'<br>
924 element in ('dls.Title') AND value<'F%'<br>
925</i>
926)
927
928}
929
930_simpleforms_{
931<table border="0" cellspacing="0" cellpadding="0" width="90%">
932<tr><th align="left">_textwordphrase_</th><th align="left">&nbsp;&nbsp;_textinfield_</th></tr>
933_regformlist_
934<tr>
935<td align="left"><input type="button" value="_textclearform_" onClick="clearForm();"></td>
936<td align="right"><input type="button" value="_textbeginsearch_" onClick="beginSearch();"></td>
937</tr>
938</table>}
939
940_sqlsimpleforms_{
941<table border="0" cellspacing="0" cellpadding="0" width="90%">
942 <tr>
943 <th align="left">_textfieldphrase_</th>
944 <th></th>
945 <th align="left">&nbsp;&nbsp;_textinwords_</th>
946 </tr>
947 _sqlregformlist_
948 <tr>
949 <td align="left">
950 <input type="button" value="_textclearform_" onClick="clearForm();">
951 </td>
952 <td align="right">
953 <input type="button" value="_textbeginsearch_" onClick="beginSearch();">
954 </td>
955 </tr>
956</table>
957}
958
959#
960# Full-text versions
961#
962
963_regformelement_{
964<tr><td><input type="text" size="39" name="fqv" onChange="updatefqv();" onkeypress="updatefqv(); entersubmit(event);"></td>
965<td>_fqfselection_</td></tr>}
966
967#has no and/or/not selection box
968_firstadvformelement_{
969<tr><td></td><td><input type="text" size="31" name="fqv" onChange="updatefqv();" onkeypress="updatefqv(); entersubmit(event);"></td>
970_If_("_cgiargct_" eq "1",<td align="center"><input type="checkbox" name="fqk" onClick="updatefqk();"></td>
971<td align="center"><input type="checkbox" name="fqs" onClick="updatefqs();"></td>)
972<td align="right">_fqfselection_</td></tr>}
973
974_advformelement_{
975<tr><td>_fqcselection_</td>
976<td><input type="text" size="31" name="fqv" onChange="updatefqv();" onkeypress="updatefqv(); entersubmit(event);"></td>
977_If_("_cgiargct_" eq "1",<td align="center"><input type="checkbox" name="fqk" onClick="updatefqk();"></td>
978<td align="center"><input type="checkbox" name="fqs" onClick="updatefqs();"></td>)
979<td align="right">_fqfselection_</td></tr>}
980
981
982
983_fqcselection_ {
984<select name="fqc" onChange="updatefqc();">
985<option value="and">_textand_
986<option value="or">_textor_
987<option value="not">_textandnot_
988</select>}
989
990
991_andorfqcselection_ {
992<select name="fqc" onChange="updatefqc();">
993<option value="and">_textand_
994<option value="or">_textor_
995</select>}
996
997
998#
999# SQL versions of regformelement, firstsqladvformelement, advformelement
1000#
1001
1002_sqlregformelement_{
1003<tr>
1004 <td>
1005 _sqlfqfselection_
1006 </td>
1007 <td>
1008 _sqlfqcselection_
1009 </td>
1010 <td>
1011 <input type="text" size="39" name="fqv" onChange="updatefqv();"
1012 onkeypress="updatefqv(); entersubmit(event);">
1013 </td>
1014</tr>
1015}
1016
1017_firstsqladvformelement_{
1018<tr>
1019 <td>
1020 </td>
1021 <td align="right">
1022 _sqlfqfselection_
1023 </td>
1024 <td>
1025 _sqlfqcselection_
1026 </td>
1027 <td>
1028 <input type="text" size="31" name="fqv" onChange="updatefqv();"
1029 onkeypress="updatefqv(); entersubmit(event);">
1030 </td>
1031</tr>
1032}
1033
1034_sqladvformelement_{
1035<tr>
1036 <td>
1037 _andorfqcselection_
1038 </td>
1039 <td align="right">
1040 _sqlfqfselection_
1041 </td>
1042 <td>
1043 _sqlfqcselection_
1044 </td>
1045 <td>
1046 <input type="text" size="31" name="fqv" onChange="updatefqv();" onkeypress="updatefqv(); entersubmit(event);">
1047 </td>
1048</tr>
1049}
1050
1051
1052_sqlfqcselection_ {
1053<select name="sqlfqc" onChange="updatesqlfqc();">
1054 <option value="=">matches
1055 <option value="&lt;">&lt;
1056 <option value="&lt;=">&lt;=
1057 <option value="LIKE">like
1058 <option value="&gt;=">&gt;=
1059 <option value="&gt;">&gt;
1060 <option value="&lt;&gt;">&lt;&gt;
1061
1062</select>}
1063
1064#
1065# end of SQL version
1066#
1067
1068_textselect_ {_If_(_cgiargb_,_chooseadvancedsearch_,_choosesimplesearch_)}
1069
1070_choosesimplesearch_ {_If_("_cgiargqt_" eq "2",_textsimplesqlsearch_,_textsimplesearch_)}
1071
1072_chooseadvancedsearch_ {_If_("_cgiarqt_" eq "2",_textadvancedsqlsearch_,_chooseadvancedsearchct_)}
1073_chooseadvancedsearchct_ {_If_(_cgiargct_,_If_("_cgiargct_" eq "2",_textadvancedlucenesearch_,_textadvancedmgppsearch_),_textadvancedsearch_}
1074
1075# formed based versions
1076_textformselect_ {_If_(_cgiargb_,_chooseformadvancedsearch_,_chooseformsimplesearch_)}
1077_chooseformsimplesearch_ {_If_("_cgiargqt_" eq "2",_textformsimplesearchsql_,_textformsimplesearch_)}
1078
1079_chooseformadvancedsearch_ {_If_("_cgiargqt_" eq "2",_textformadvancedsearchsql_,_chooseformadvancedsearchct_)}
1080_chooseformadvancedsearchct_ {_If_("_cgiargct_" eq "1",_textformadvancedsearchmgpp_)_If_("_cgiargct_" eq "2",_textformadvancedsearchlucene_)}
1081
1082# mg uses hselection for index, mgpp uses fqfselection
1083_indexselection_{_If_(_cgiargct_,_fqfselection_,_hselection_)}
1084
1085# we want to put the links to previous/next pages of results
1086# in the footer
1087_pagefooterextra_ {
1088<center>
1089<table cellspacing="0" cellpadding="0" width="_pagewidth_">
1090<tr>
1091<td align="left">_If_(_prevfirst_,<a href="_httpquery_&amp;r=_prevfirst_">_iconprev__textmatches__prevfirst_ - _prevlast_</a>)</td>
1092<td align="right">_If_(_nextfirst_,<a href="_httpquery_&amp;r=_nextfirst_">_textmatches__nextfirst_ - _nextlast__iconnext_</a>)</td>
1093</tr></table>
1094</center>
1095
1096</div> <!-- document -->
1097}
1098
1099_querytypeselection_ {
1100<select name="t">
1101<option value="1"_If_(_cgiargt_, selected)>_If_(_cgiargb_,_textranked_,_textsome_)
1102<option value="0"_If_(_cgiargt_,, selected)>_If_(_cgiargb_,_textboolean_,_textall_)
1103</select>
1104}
1105
1106
1107_formquerytypesimpleselection_ {
1108<select name="t">
1109<option value="1"_If_(_cgiargt_, selected)>_textsome_
1110<option value="0"_If_(_cgiargt_,, selected)>_textall_
1111</select>
1112}
1113
1114_formquerytypeadvancedselection_ {
1115<select name="t">
1116<option value="1"_If_(_cgiargt_, selected)>_textranked_
1117<option value="0"_If_(_cgiargt_,, selected)>_textnatural_
1118</select>
1119}
1120
1121# this one is not used by english.dm any more. But I have added it back for the other languages that haven't updated the translations for their form search macros.
1122_formquerytypeselection_ {
1123<select name="t">
1124<option value="1"_If_(_cgiargt_, selected)>_If_(_cgiargb_,_textranked_,_textsome_)
1125<option value="0"_If_(_cgiargt_,, selected)>_If_(_cgiargb_,_textnatural_,_textall_)
1126</select>
1127}
1128
Note: See TracBrowser for help on using the repository browser.