' . $hesklang['wsel']; // Sequential ID supported? if ($what == 'seqid' && ! $hesk_settings['sequential']) { $what = 'trackid'; } // Setup SQL based on searching preferences if ( ! $no_query) { $sql_previous = $sql; $sql = " AND "; switch ($what) { case 'trackid': $sql .= " ( `trackid` = '".hesk_dbEscape($q)."' OR `merged` LIKE '%#".hesk_dbEscape($q)."#%' ) "; break; case 'name': $sql .= "`name` LIKE '%".hesk_dbEscape( hesk_dbLike($q) )."%' COLLATE '" . hesk_dbCollate() . "' "; break; case 'email': $sql .= "`email` LIKE '%".hesk_dbEscape($q)."%' "; break; case 'subject': $sql .= "`subject` LIKE '%".hesk_dbEscape( hesk_dbLike($q) )."%' COLLATE '" . hesk_dbCollate() . "' "; break; case 'message': $sql .= " ( `message` LIKE '%".hesk_dbEscape( hesk_dbLike($q) )."%' COLLATE '" . hesk_dbCollate() . "' OR `id` IN ( SELECT DISTINCT `replyto` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."replies` WHERE `message` LIKE '%".hesk_dbEscape( hesk_dbLike($q) )."%' COLLATE '" . hesk_dbCollate() . "' ) ) "; break; case 'seqid': $sql .= "`id` = '".intval($q)."' "; break; case 'notes': $sql .= "`id` IN ( SELECT DISTINCT `ticket` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."notes` WHERE `message` LIKE '%".hesk_dbEscape( hesk_dbLike($q) )."%' COLLATE '" . hesk_dbCollate() . "' ) "; break; case 'ip': $sql .= "`ip` LIKE '".preg_replace('/[^0-9\.\%]/', '', $q)."' "; break; default: if (isset($hesk_settings['custom_fields'][$what]) && $hesk_settings['custom_fields'][$what]['use']) { $sql .= "`".hesk_dbEscape($what)."` LIKE '%".hesk_dbEscape($q)."%' COLLATE '" . hesk_dbCollate() . "' "; } else { $hesk_error_buffer .= '
' . $hesklang['invalid_search']; } } $sql_count .= $sql; $sql = $sql_previous . $sql; } // Owner if ( $tmp = intval( hesk_GET('owner', 0) ) ) { $sql .= " AND `owner`={$tmp} "; $sql_count .= " AND `owner`={$tmp} "; $owner_input = $tmp; $hesk_error_buffer = str_replace($hesklang['fsq'],'',$hesk_error_buffer); } else { $owner_input = 0; } /* Date */ /* -> Check for compatibility with old date format */ if (preg_match("/(\d{4})-(\d{2})-(\d{2})/", hesk_GET('dt'), $m)) { $_GET['dt']=$m[2].$m[3].$m[1]; } /* -> Now process the date value */ $dt = preg_replace('/[^0-9]/','', hesk_GET('dt') ); if (strlen($dt) == 8) { $date = substr($dt,4,4) . '-' . substr($dt,0,2) . '-' . substr($dt,2,2); $date_input= substr($dt,0,2) . '/' . substr($dt,2,2) . '/' . substr($dt,4,4); /* This search is valid even if no query is entered */ if ($no_query) { $hesk_error_buffer = str_replace($hesklang['fsq'],'',$hesk_error_buffer); } $sql .= " AND `dt` BETWEEN '{$date} 00:00:00' AND '{$date} 23:59:59' "; $sql_count .= " AND `dt` BETWEEN '{$date} 00:00:00' AND '{$date} 23:59:59' "; } else { $date = ''; $date_input = ''; } /* Any errors? */ if (strlen($hesk_error_buffer)) { hesk_process_messages($hesk_error_buffer,'NOREDIRECT'); } /* This will handle error, success and notice messages */ $handle = hesk_handle_messages(); // Due date if ($is_quick_link == 'due') { $sql .= " AND `status` != 3 AND `due_date` BETWEEN NOW() AND (NOW() + INTERVAL ".intval($hesk_settings['due_soon'])." DAY) "; } elseif ($is_quick_link == 'ovr') { $sql .= " AND `status` != 3 AND `due_date` < NOW() "; } // Complete the required SQL queries $sql = $sql_final . $sql; $sql_count .= " GROUP BY `assigned_to`, `due`, `status` "; // Strip extra slashes $q = stripslashes($q); /* Prepare variables used in search and forms */ require_once(HESK_PATH . 'inc/prepare_ticket_search.inc.php'); /* If there has been an error message skip searching for tickets */ if ($handle !== FALSE) { $totals = array( 'all' => 0, 'open' => 0, 'resolved' => 0, 'filtered' => array( 'all' => 0, 'open' => 0, 'assigned_to_me' => 0, 'assigned_to_others' => 0, 'assigned_to_others_by_me' => 0, 'unassigned' => 0, 'due_soon' => 0, 'overdue' => 0, 'by_status' => array() ), ); $can_view_unassigned = hesk_checkPermission('can_view_unassigned',0); $can_view_ass_others = hesk_checkPermission('can_view_ass_others',0); $can_view_ass_by = hesk_checkPermission('can_view_ass_by',0); $href = 'find_tickets.php'; require_once(HESK_PATH . 'inc/ticket_list.inc.php'); } /* Clean unneeded session variables */ hesk_cleanSessionVars('hide'); /* Show the search form */ require_once(HESK_PATH . 'inc/show_search_form.inc.php'); /* Print footer */ require_once(HESK_PATH . 'inc/footer.inc.php'); exit(); ?>