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

Last change on this file since 22948 was 22948, checked in by ak19, 14 years ago

Dr Bainbridge fixed more bugs tangentially related to the advanced searching combined with fielded searching bug that was previously crashing the library.cgi and server.exe. This time around, there were no crashes but the recent corrections to the combined searching needed to work with SQL queries as well. When testing this last, it was discovered that 1. the SQL form wasn't displaying in preferences even when sqlite was set as the infodbtype in collect.cfg and its format Searchtypes line set to include sqlform next to plain and form. This was fixed by making CGIWrapper remember to instantiate sqlqueryaction and not just queryaction. 2. the RunQuery button would eat commas on submission (previously choosing to turn them into non-descript spaces), this has now been fixed in the query.dm macro.

  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 28.2 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 spaces to plus
616// also convert other illegal characters (including commas) to %xx codes
617// This routine used to treat commas like spaces (replacing them with a plus),
618// but this is no longer good enough for handling sql-queries
619function format(string) \{
620 var str = "" + string;
621 var out = "", flag = 0;
622 var ch = "";
623 var j;
624 for (j = 0; j < str.length; j++) \{
625 ch=str.charAt(j);
626 if (ch == " ") \{
627 if (flag == 0) \{
628 out += "+";
629 flag=1;
630 \}
631 continue;
632 \}
633 if (ch == "," || ch == ";" || ch == ":" || ch == "/" || ch == "?" ||
634 ch == "@" || ch == "&" || ch == "=" || ch == "#" ||
635 ch == "%") \{
636 out += escape(ch);
637 flag=0;
638 continue;
639 \}
640 out += str.charAt(j);
641 flag=0;
642 \}
643 return out;
644\}
645
646}
647
648#_httpquery_ has a=q&e=compressedargs
649#if adv form, need to set k=0 and s=0
650_advformargs_{_If_(_cgiargb_,&k=0&s=0)}
651
652_searchfunctions_ {
653
654function beginSearch() \{
655 window.location="_httpquery_"+getstdargs()+"_advformargs_"+getsearchargs();
656\}
657
658function runQuery() \{
659 window.location="_httpquery_"+getstdargs()+"_advformargs_"+getqueryargs();
660\}
661
662function clearForm() \{
663 clearfqf();
664_If_("_cgiarga_" eq "sqlq",
665 clearsqlfqf();
666)
667 clearfqv();
668
669 if ("_cgiargb_" == "1") \{
670 clearfqk();
671 clearfqs();
672 clearfqc();
673_If_("_cgiarga_" eq "sqlq",
674 clearsqlfqc();
675)
676 \}
677
678\}
679
680}
681
682#######################################################################
683# headers
684# these are overridden so we can put an onLoad event handler
685# in the <body> tag of this page - for mgpp, form search pages
686#######################################################################
687
688#copied from prefs
689
690_header_ {_cgihead_
691_htmlhead_(class="bgimage" onLoad="initialize();")_startspacer__pagebanner_
692}
693
694# this declaration ends up being the same as style=restrict, never mind
695_header_[v=1] {_cgihead_
696_htmlhead_(onLoad="initialize();")_pagebanner_
697}
698
699#######################################################################
700# page content
701#######################################################################
702
703
704_pagetitle_ {_If_(_cgiargq_,_textquerytitle_,_textnoquerytitle_)}
705
706
707_content_ {
708
709_optnavigationbar_
710<div class="document">
711<div class="queryform">
712
713_If_("_cgiarga_" eq "sqlq",
714
715 _If_("_cgiargqt_" eq "2",_sqlfieldqueryform_,_sqlqueryform_)
716,
717 _If_(_cgiargct_,_selectqueryform_,_queryform_)
718)
719
720</div>
721
722_If_(_searchhistorylist_,<center>_searchhistorybar_</center><br>
723<center>
724_searchhistorylist_
725</center>)
726_If_(_cgiargq_,_queryresultsbar_
727<small>
728_freqmsg_
729_textpostprocess_
730_If_(_stopwordsmsg_,(_stopwordsmsg_))</small><br />
731_resultline_
732,<div class="divbar">&nbsp;</div>)
733}
734
735_selectqueryform_{_If_("_cgiargqt_" ge "1",_fieldqueryform_,_queryform_)}
736
737_queryform_ {
738<!-- query form (\_query:plainqueryform\_) -->
739<form name="QueryForm" method="get" action="_gwcgi_">
740<p>
741<input type="hidden" name="a" value="q">
742<input type="hidden" name="r" value="1">
743<input type="hidden" name="hs" value="1">
744<input type="hidden" name="e" value="_decodedcompressedoptions_">
745_queryformcontent_
746_optdatesearch_
747</p>
748</form>
749<!-- end of query form -->
750}
751
752
753_sqlqueryform_ {
754
755<!-- simple query box that requires you to type SQL where clause directly -->
756<!-- sqlquery form (\_query:plainqueryform\_) -->
757<form name="QueryForm" method="get" action="_gwcgi_">
758<p>
759<input type="hidden" name="a" value="sqlq">
760<input type="hidden" name="r" value="1">
761<input type="hidden" name="hs" value="1">
762<input type="hidden" name="e" value="_decodedcompressedoptions_">
763_sqlqueryformcontent_
764</p>
765</form>
766<!-- end of sqlquery form -->
767}
768
769
770_ifeellucky_ { <br><input type="checkbox" name="ifl" value="1">_textifeellucky_ }
771_useifeellucky_ { } # Set this to _ifeellucky_ if you want this functionality available
772
773_allowformbreak_{</span> <span class="textselect">}
774
775_queryformcontent_{
776<span class="textselect">
777_textselect_
778</span>
779
780<span class="querybox">
781_If_(_cgiargqb_,_largequerybox_,_smallquerybox_)
782_useifeellucky_
783</span>
784}
785
786
787_sqlqueryformcontent_ {
788<span class="querybox">
789_If_(_cgiargqb_,_query:largequerybox_,_query:smallquerybox_)
790_query:useifeellucky_
791</span>
792}
793
794# Automatically set by receptionist if config file switches
795# date searching on
796_optdatesearch_ { }
797
798
799_datesearch_
800{<table><tr><td>
801 <center>
802_textstartdate_
803<input type="text" name="ds" value="_cgiargds_" size="4" maxlength="4">
804<select name="dsbc" value="_cgiargdsbc_" size="1">
805 <option value="0"_If_(_cgiargdsbc_,, selected)>_textad_
806 <option value="1"_If_(_cgiargdsbc_, selected)>_textbc_
807</select>
808_textenddate_
809<input type="text" name="de" value="_cgiargde_" size="4" maxlength="4">
810<select name="debc" size="1">
811 <option value="0" _If_(_cgiargdebc_,, selected)>_textad_
812 <option value="1" _If_(_cgiargdebc_, selected)>_textbc_
813</select>
814</center>
815</td></tr>
816<tr><td>
817_textexplaineras_
818</td></tr>
819</table>
820</center>
821}
822
823_smallquerybox_ {<nobr><input type="text" name="q" value="_cgiargq_" size="50">&nbsp;<input type="submit" value="_textbeginsearch_"></nobr>}
824
825_largequerybox_ {
826<tr><td><textarea name="q" cols="63" rows="10">
827_cgiargq_
828</textarea></td></tr>
829<tr align="right"><td><table>
830<tr><td><input type="submit" value="_textbeginsearch_"></td>
831</tr></table></td></tr>}
832
833
834_fieldqueryform_ {
835<noscript>
836<p><b>_textnojsformwarning_</b></p>
837</noscript>
838<!-- field query form (\_query:fieldqueryform\_) -->
839<form name="QueryForm" method="get" action="_gwcgi_">
840
841<table><tr><td align="left">
842
843_textformselect_
844</td></tr>
845<tr><td>
846_If_(_cgiargb_,_advancedforms_,_simpleforms_)
847</td></tr>
848</table>
849_If_(_cgiargb_,<div class="divbar">&nbsp;</div>
850_advancedformextra_)
851
852</form>
853<!-- end of query form -->
854}
855
856_sqlfieldqueryform_ {
857<noscript>
858<p><b>_textnojsformwarning_</b></p>
859</noscript>
860<!--sql field query form (\_query:fieldqueryform\_) -->
861<form name="QueryForm" method="get" action="_gwcgi_">
862
863<table><tr><td align="left">
864_textformselect_
865</td></tr>
866<tr><td>
867_If_(_cgiargb_,_sqladvancedforms_,_sqlsimpleforms_)
868</td></tr>
869</table>
870_If_(_cgiargb_,<div class="divbar">&nbsp;</div>
871_advancedformextra_)
872
873</form>
874<!-- end of sql query form -->
875}
876
877
878
879_advancedforms_{
880<table border="0" cellspacing="0" cellpadding="0" width="90%">
881<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>
882_advformlist_
883<tr>
884<td colspan="2" align="left"><input type="button" value="_textclearform_" onClick="clearForm();"></td>
885<td colspan="3" align="right"><input type="button" value="_textbeginsearch_" onClick="beginSearch();"></td>
886</tr>
887</table>
888}
889
890_sqladvancedforms_{
891<table border="0" cellspacing="0" cellpadding="0" width="90%">
892 <tr>
893 <th></th>
894 <th align="left">_textfieldphrase_</th>
895 <th></th>
896 <th align="center">&nbsp;&nbsp;_textinwords_</th>
897 </tr>
898 _sqladvformlist_
899 <tr>
900 <td colspan="2" align="left">
901 <input type="button" value="_textclearform_" onClick="clearForm();">
902 </td>
903 <td colspan="3" align="right">
904 <input type="button" value="_textbeginsearch_" onClick="beginSearch();">
905 </td>
906 </tr>
907</table>
908}
909
910
911
912_advancedformextra_{
913<table>
914<tr><td align="left">_textadvquery_</td></tr>
915<tr><td><textarea name="q" cols="57" rows="3" onChange="updateq();">_cgiargq_</textarea></td>
916<td valign="bottom">
917<input type="button" value="_textrunquery_" onClick="runQuery();"></td></tr>
918</table>
919
920
921_If_("_cgiarga_" eq "sqlq",
922<p>For example:<br>
923<i>
924 element in (\'dc.Keywords\') AND value=\'Farming\'<br>
925 element in (\'dls.Title\') AND value LIKE \'F%\'<br>
926 element in (\'dls.Title\') AND value<\'F%\'<br>
927</i>
928)
929
930}
931
932_simpleforms_{
933<table border="0" cellspacing="0" cellpadding="0" width="90%">
934<tr><th align="left">_textwordphrase_</th><th align="left">&nbsp;&nbsp;_textinfield_</th></tr>
935_regformlist_
936<tr>
937<td align="left"><input type="button" value="_textclearform_" onClick="clearForm();"></td>
938<td align="right"><input type="button" value="_textbeginsearch_" onClick="beginSearch();"></td>
939</tr>
940</table>}
941
942_sqlsimpleforms_{
943<table border="0" cellspacing="0" cellpadding="0" width="90%">
944 <tr>
945 <th align="left">_textfieldphrase_</th>
946 <th></th>
947 <th align="left">&nbsp;&nbsp;_textinwords_</th>
948 </tr>
949 _sqlregformlist_
950 <tr>
951 <td align="left">
952 <input type="button" value="_textclearform_" onClick="clearForm();">
953 </td>
954 <td align="right">
955 <input type="button" value="_textbeginsearch_" onClick="beginSearch();">
956 </td>
957 </tr>
958</table>
959}
960
961#
962# Full-text versions
963#
964
965_regformelement_{
966<tr><td><input type="text" size="39" name="fqv" onChange="updatefqv();" onkeypress="updatefqv(); entersubmit(event);"></td>
967<td>_fqfselection_</td></tr>}
968
969#has no and/or/not selection box
970_firstadvformelement_{
971<tr><td></td><td><input type="text" size="31" name="fqv" onChange="updatefqv();" onkeypress="updatefqv(); entersubmit(event);"></td>
972_If_("_cgiargct_" eq "1",<td align="center"><input type="checkbox" name="fqk" onClick="updatefqk();"></td>
973<td align="center"><input type="checkbox" name="fqs" onClick="updatefqs();"></td>)
974<td align="right">_fqfselection_</td></tr>}
975
976_advformelement_{
977<tr><td>_fqcselection_</td>
978<td><input type="text" size="31" name="fqv" onChange="updatefqv();" onkeypress="updatefqv(); entersubmit(event);"></td>
979_If_("_cgiargct_" eq "1",<td align="center"><input type="checkbox" name="fqk" onClick="updatefqk();"></td>
980<td align="center"><input type="checkbox" name="fqs" onClick="updatefqs();"></td>)
981<td align="right">_fqfselection_</td></tr>}
982
983
984
985_fqcselection_ {
986<select name="fqc" onChange="updatefqc();">
987<option value="and">_textand_
988<option value="or">_textor_
989<option value="not">_textandnot_
990</select>}
991
992
993_andorfqcselection_ {
994<select name="fqc" onChange="updatefqc();">
995<option value="and">_textand_
996<option value="or">_textor_
997</select>}
998
999
1000#
1001# SQL versions of regformelement, firstsqladvformelement, advformelement
1002#
1003
1004_sqlregformelement_{
1005<tr>
1006 <td>
1007 _sqlfqfselection_
1008 </td>
1009 <td>
1010 _sqlfqcselection_
1011 </td>
1012 <td>
1013 <input type="text" size="39" name="fqv" onChange="updatefqv();"
1014 onkeypress="updatefqv(); entersubmit(event);">
1015 </td>
1016</tr>
1017}
1018
1019_firstsqladvformelement_{
1020<tr>
1021 <td>
1022 </td>
1023 <td align="right">
1024 _sqlfqfselection_
1025 </td>
1026 <td>
1027 _sqlfqcselection_
1028 </td>
1029 <td>
1030 <input type="text" size="31" name="fqv" onChange="updatefqv();"
1031 onkeypress="updatefqv(); entersubmit(event);">
1032 </td>
1033</tr>
1034}
1035
1036_sqladvformelement_{
1037<tr>
1038 <td>
1039 _andorfqcselection_
1040 </td>
1041 <td align="right">
1042 _sqlfqfselection_
1043 </td>
1044 <td>
1045 _sqlfqcselection_
1046 </td>
1047 <td>
1048 <input type="text" size="31" name="fqv" onChange="updatefqv();" onkeypress="updatefqv(); entersubmit(event);">
1049 </td>
1050</tr>
1051}
1052
1053
1054_sqlfqcselection_ {
1055<select name="sqlfqc" onChange="updatesqlfqc();">
1056 <option value="=">matches
1057 <option value="&lt;">&lt;
1058 <option value="&lt;=">&lt;=
1059 <option value="LIKE">like
1060 <option value="&gt;=">&gt;=
1061 <option value="&gt;">&gt;
1062 <option value="&lt;&gt;">&lt;&gt;
1063
1064</select>}
1065
1066#
1067# end of SQL version
1068#
1069
1070_textselect_ {_If_(_cgiargb_,_chooseadvancedsearch_,_choosesimplesearch_)}
1071
1072_choosesimplesearch_ {_If_("_cgiargqt_" eq "2",_textsimplesqlsearch_,_textsimplesearch_)}
1073
1074_chooseadvancedsearch_ {_If_("_cgiarqt_" eq "2",_textadvancedsqlsearch_,_chooseadvancedsearchct_)}
1075_chooseadvancedsearchct_ {_If_(_cgiargct_,_If_("_cgiargct_" eq "2",_textadvancedlucenesearch_,_textadvancedmgppsearch_),_textadvancedsearch_}
1076
1077# formed based versions
1078_textformselect_ {_If_(_cgiargb_,_chooseformadvancedsearch_,_chooseformsimplesearch_)}
1079_chooseformsimplesearch_ {_If_("_cgiargqt_" eq "2",_textformsimplesearchsql_,_textformsimplesearch_)}
1080
1081_chooseformadvancedsearch_ {_If_("_cgiargqt_" eq "2",_textformadvancedsearchsql_,_chooseformadvancedsearchct_)}
1082_chooseformadvancedsearchct_ {_If_("_cgiargct_" eq "1",_textformadvancedsearchmgpp_)_If_("_cgiargct_" eq "2",_textformadvancedsearchlucene_)}
1083
1084# mg uses hselection for index, mgpp uses fqfselection
1085_indexselection_{_If_(_cgiargct_,_fqfselection_,_hselection_)}
1086
1087# we want to put the links to previous/next pages of results
1088# in the footer
1089_pagefooterextra_ {
1090<center>
1091<table cellspacing="0" cellpadding="0" width="_pagewidth_">
1092<tr>
1093<td align="left">_If_(_prevfirst_,<a href="_httpquery_&amp;r=_prevfirst_">_iconprev__textmatches__prevfirst_ - _prevlast_</a>)</td>
1094<td align="right">_If_(_nextfirst_,<a href="_httpquery_&amp;r=_nextfirst_">_textmatches__nextfirst_ - _nextlast__iconnext_</a>)</td>
1095</tr></table>
1096</center>
1097
1098</div> <!-- document -->
1099}
1100
1101_querytypeselection_ {
1102<select name="t">
1103<option value="1"_If_(_cgiargt_, selected)>_If_(_cgiargb_,_textranked_,_textsome_)
1104<option value="0"_If_(_cgiargt_,, selected)>_If_(_cgiargb_,_textboolean_,_textall_)
1105</select>
1106}
1107
1108
1109_formquerytypesimpleselection_ {
1110<select name="t">
1111<option value="1"_If_(_cgiargt_, selected)>_textsome_
1112<option value="0"_If_(_cgiargt_,, selected)>_textall_
1113</select>
1114}
1115
1116_formquerytypeadvancedselection_ {
1117<select name="t">
1118<option value="1"_If_(_cgiargt_, selected)>_textranked_
1119<option value="0"_If_(_cgiargt_,, selected)>_textnatural_
1120</select>
1121}
1122
1123# 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.
1124_formquerytypeselection_ {
1125<select name="t">
1126<option value="1"_If_(_cgiargt_, selected)>_If_(_cgiargb_,_textranked_,_textsome_)
1127<option value="0"_If_(_cgiargt_,, selected)>_If_(_cgiargb_,_textnatural_,_textall_)
1128</select>
1129}
1130
Note: See TracBrowser for help on using the repository browser.