Skip to content
Snippets Groups Projects
Commit 099ae78a authored by Jared Hancock's avatar Jared Hancock
Browse files

forms: Fix advanced search on fields with a `name`

Previously, advanced search was bugged in such a way that the advanced
search on a field without a `name` value would result in a hit of all the
tickets.

Fixes osTicket/osTicket-1.8#288
parent 50d3d706
No related branches found
No related tags found
No related merge requests found
......@@ -211,13 +211,13 @@ class TicketsAjaxAPI extends AjaxController {
'WHERE entry.object_type="T" GROUP BY entry.object_id)';
$vals = array();
foreach (TicketForm::getInstance()->getFields() as $f) {
if ($f->get('name') && isset($req[$f->getFormName()])
if (isset($req[$f->getFormName()])
&& ($val = $req[$f->getFormName()])) {
$name = $f->get('name');
$vals[] = "MAX(IF(field.name = '$name', ans.value_id, NULL)) as `{$name}_id`";
$vals[] = "MAX(IF(field.name = '$name', ans.value, NULL)) as `$name`";
$where .= " AND (dyn.`{$name}_id` = ".db_input($val)
. " OR dyn.`$name` LIKE '%".db_real_escape($val)."%')";
$id = $f->get('id');
$vals[] = "MAX(IF(field.id = '$id', ans.value_id, NULL)) as `f_{$id}_id`";
$vals[] = "MAX(IF(field.id = '$id', ans.value, NULL)) as `f_$id`";
$where .= " AND (dyn.`f_{$id}_id` = ".db_input($val)
. " OR dyn.`f_$id` LIKE '%".db_real_escape($val)."%')";
}
}
if ($vals)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment