2 /*=====================================================================*\
3 || ################################################################### ||
4 || # Renapsus [#]version[#]
5 || # --------------------------------------------------------------- # ||
6 || # All parts of this file are ©2003-[#]year[#] Iris Studios, Inc. No # ||
7 || # part of this file may be reproduced in any way: part or whole. # ||
8 || # --------------------------------------------------------------- # ||
9 || # ©2003 - [#]year[#] Iris Studios, Inc. | http://www.iris-studios.com # ||
10 || ################################################################### ||
11 \*=====================================================================*/
13 $fetchtemplates = array(
19 require_once('./global.php');
21 if (!can_perform('cansearch'))
27 define('MODE', intval($_POST['mode']));
28 define('MODE_ANY', iff(MODE
== 1, 1, 0));
29 define('MODE_ALL', iff(MODE
== 2, 1, 0));
30 define('MODE_RAW', iff(MODE
== 3, 1, 0));
32 define('SEARCH_WORD_MIN', 3);
34 // ###################################################################
36 if (empty($_REQUEST['do']))
38 $_REQUEST['do'] = 'search';
41 // ###################################################################
43 if ($_REQUEST['do'] == 'results')
46 'summary' => STR
, // done
47 'reporter' => STR
, // done
48 'pcv_select' => STR
, // done
49 'severity' => INT, // done
50 'priority' => INT, // done
51 'status' => INT, // done
52 'resolution' => INT, // done
53 'assignedto' => INT, // done
54 'date' => INT) // done
57 // -------------------------------------------------------------------
58 // parse out our product/component/version
59 $vars['pcv'] = parse_pcv_select($vars['pcv_select']);
61 // -------------------------------------------------------------------
65 $keywords = preg_split('#\s+#', $vars['summary']);
67 foreach ($keywords AS $word)
69 if (strlen($word) < SEARCH_WORD_MIN
)
76 $querybuild['where']['text'] .= " +$word";
80 $querybuild['where']['text'] .= " $word";
84 $temp = trim($querybuild['where']['text']);
86 if (MODE_ALL
OR MODE_RAW
)
88 // do some operations for those who use str boolean operators
89 $querybuild['where']['text'] = "AND MATCH (bug.summary, comment.comment) AGAINST ('$temp' IN BOOLEAN MODE)";
93 $querybuild['where']['text'] = "AND MATCH (bug.summary, comment.comment) AGAINST ('$temp')";
97 // -------------------------------------------------------------------
99 if ($vars['reporter'])
101 // force email or name?? make a distinction?
102 // more elegant way to do this? probably
103 $user = $DB_sql->query_first("SELECT * FROM user WHERE email = '$vars[reporter]' OR MATCH (displayname) AGAINST ('$vars[reporter]')");
106 $querybuild['where']['reporter'] = "AND bug.userid = $user[userid] OR comment.userid = $user[userid]";
110 // -------------------------------------------------------------------
111 // product/component/version stuff
112 if (is_array($vars['pcv']))
114 $querybuild['where']['pcv'] = "AND bug.productid = {$vars['pcv']['product']} AND bug.componentid = {$vars['pcv']['component']} AND bug.versionid = {$vars['pcv']['version']}";
117 // -------------------------------------------------------------------
118 // severity, priority, status, resolution, assignedto
121 if ($vars['severity'])
123 $querybuild['where']['severity'] = "AND bug.severity = $vars[severity]";
127 if ($vars['priority'])
129 $querybuild['where']['priority'] = "AND bug.priority = $vars[priority]";
135 $querybuild['where']['status'] = "AND bug.status = $vars[status]";
139 if ($vars['resolution'])
141 $querybuild['where']['resolution'] = "AND bug.resolution = $vars[resolution]";
145 if ($vars['assignedto'])
147 $querybuild['where']['assignedto'] = "AND bug.assignedto = $vars[assignedto]";
150 // -------------------------------------------------------------------
154 // now - (seconds/day * number of days)
155 $dateline = time() - ($vars['date'] * 3600);
156 $querybuild['where']['date'] = "AND bug.dateline >= $dateline";
159 print_r($querybuild);
162 // ###################################################################
164 if ($_REQUEST['do'] == 'search')
166 $pcv_select = construct_pcv_select('radio', '--');
168 $blankselect = '<option value="0">- Choose -</option>';
170 $select['severity'] = $blankselect;
171 foreach ($bugsys->datastore
['severity'] AS $severity)
173 $value = $severity['severityid'];
174 $label = $severity['severity'];
175 eval('$select[severity] .= "' . $tpl->fetch('selectoption') . '";');
178 $select['priority'] = $blankselect;
179 foreach ($bugsys->datastore
['priority'] AS $priority)
181 $value = $priority['priorityid'];
182 $label = $priority['priority'];
183 eval('$select[priority] .= "' . $tpl->fetch('selectoption') . '";');
186 $select['status'] = $blankselect;
187 foreach ($bugsys->datastore
['status'] AS $status)
189 $value = $status['statusid'];
190 $label = $status['status'];
191 eval('$select[status] .= "' . $tpl->fetch('selectoption') . '";');
194 $select['resolution'] = $blankselect;
195 foreach ($bugsys->datastore
['resolution'] AS $resolution)
197 $value = $resolution['resolutionid'];
198 $label = $resolution['resolution'];
199 eval('$select[resolution] .= "' . $tpl->fetch('selectoption') . '";');
202 $select['dev'] = $blankselect;
203 foreach ($bugsys->datastore
['assignto'] AS $dev)
205 $value = $dev['userid'];
206 $label = construct_user_display($dev, false
);
207 eval('$select[dev] .= "' . $tpl->fetch('selectoption') . '";');
210 eval('$tpl->flush("' . $tpl->fetch('search') . '");');
213 /*=====================================================================*\
214 || ###################################################################
217 || ###################################################################
218 \*=====================================================================*/