⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ticketsearch.php

📁 jsp程序开发系统
💻 PHP
📖 第 1 页 / 共 3 页
字号:
<?php
// +-------------------------------------------------------------+
// | DeskPRO v [2.0.1 Production]
// | Copyright (C) 2001 - 2004 Headstart Solutions Limited
// | Supplied by WTN-WDYL
// | Nullified by WTN-WDYL
// | Distribution via WebForum, ForumRU and associated file dumps
// +-------------------------------------------------------------+
// | DESKPRO IS NOT FREE SOFTWARE
// +-------------------------------------------------------------+
// | License ID : Full Enterprise License =) ...
// | License Owner : WTN-WDYL Team
// +-------------------------------------------------------------+
// | $RCSfile: ticketsearch.php,v $
// | $Date: 2004/02/13 01:58:34 $
// | $Revision: 1.112 $
// +-------------------------------------------------------------+
// | File Details:
// | - Ticket search forms and engine.
// +-------------------------------------------------------------+

error_reporting(E_ALL ^ E_NOTICE);

/*
	nodisplay field:
		1 : Spam
		2 : User must validate themselves
		3 : Tech must validate users
*/

include "./../global.php";

if (!$_REQUEST['Jump']) {
	tech_nav('Tickets', 'Ticket Search');
}

################################# GLOBAL SECTIONS ##################################### 

////////////////////////// SORT OUT INFORMATION //////////////////////////

if ($_REQUEST[variables]) {
	$_REQUEST = array_merge(unserialize($_REQUEST[variables]), $_REQUEST);
}

// searchtype
if (!$_REQUEST['searchtype']) {
	$_REQUEST['searchtype'] = "simple";
}

################################# SORT OUT FOOTER_SEARCH ##################################### 

if ($user['cats_user']) {
	if (@in_array(-3, $_REQUEST['category'])) {
		$_REQUEST['category'] = split(',', $user['cats_user']);
	}
}

################################# SORT OUT FOOTER_SELECT ##################################### 

if (is_array($_REQUEST['unassigned_category'])) {
	$_REQUEST['category'] = $_REQUEST['unassigned_category'];
	$_REQUEST['tech'] = -1;
	$footer_select = true;
}
if (is_array($_REQUEST['other_category'])) {
	$_REQUEST['category'] = $_REQUEST['other_category'];
	$_REQUEST['tech'] = 'assigned';
	$footer_select = true;
}
if (is_array($_REQUEST['your_category'])) {
	$_REQUEST['category'] = $_REQUEST['your_category'];
	$_REQUEST['tech'] = $user[id];
	$footer_select = true;
}
if (is_array($_REQUEST['unassigned_priority'])) {
	$_REQUEST['priority'] = $_REQUEST['unassigned_priority'];
	$_REQUEST['tech'] = -1;
	$footer_select = true;
}
if (is_array($_REQUEST['other_priority'])) {
	$_REQUEST['priority'] = $_REQUEST['other_priority'];
	$footer_select = true;
	$_REQUEST['tech'] = 'assigned';
}
if (is_array($_REQUEST['your_priority'])) {
	$_REQUEST['priority'] = $_REQUEST['your_priority'];
	$footer_select = true;
	$_REQUEST['tech'] = $user[id];
}
if (is_array($_REQUEST['other_tech'])) {
	$_REQUEST['tech'] = $_REQUEST['other_tech'];
	$footer_select = true;
	$_REQUEST['tech'] = 'assigned';
}

if ($footer_select) {
	$_REQUEST['do'] = 'search';
	$_REQUEST['awaiting_tech'] = 1;
	$_REQUEST['unresolved'] = 1;
}

////////////////////////// SAVED SEARCH/RESULT ///////////////////////////

if ($_REQUEST['save_search_op']) {
	$save_items = array('greater', 'lessthan', 'user_owner', 'subject', 'subjectoption',
		'message', 'messageoption', 'messageowner', 'tech',
		'ddate_started_start', 'mdate_started_start', 'ydate_started_start',
		'ddate_started_end', 'mdate_started_end', 'ydate_started_end',
		'ddate_resolved_start', 'mdate_resolved_start', 'ydate_resolved_start',
		'ddate_resolved_end', 'mdate_resolved_end', 'ydate_resolved_end',
		'ddate_activity_start', 'mdate_activity_start', 'ydate_activity_start',
		'ddate_activity_end', 'mdate_activity_end', 'ydate_activity_end',
		'resolved', 'unresolved', 'awaiting_tech', 'awaiting_user', 'category', 'priority',
		'nodisplay');
	foreach ($save_items AS $key => $val) {
		$data[$val] = $_REQUEST[$val];
	}
}

if ($_REQUEST['save_search_op'] == 'Save') {
	if ($_REQUEST['saved_search']) {
		$data['custom_fields'] = serialize($_REQUEST['custom_fields']);
		$data = mysql_escape_string(serialize($data));
		$db->query("UPDATE tech_ticket_search 
			set data = '$data' WHERE id = '$_REQUEST[saved_search]'
			AND techid = '$user[id]'");
		$message = "Search criteria updated.";
	} else {
		$message = "You must select a valid search to update. [Changes not saved]";
		$_REQUEST['do'] = '';
		$_REQUEST['searchtype'] = 'advanced';
	}
} 

if ($_REQUEST['save_search_op'] == 'Save As') {
	if ($_REQUEST['save_search_name']) {
		$data['custom_fields'] = serialize($_REQUEST['custom_fields']);
		$data = mysql_escape_string(serialize($data));
		$db->query("INSERT INTO tech_ticket_search (techid, save_name, save_type, data)
			VALUES ('$user[id]', '$_REQUEST[save_search_name]', 'search', '$data')");
		$message = "Search criteria saved as $_REQUEST[save_search_name].";
	} else {
		$message = "You must enter a name to assign to this search. [Search not saved]";
		$_REQUEST['do'] = '';
		$_REQUEST['searchtype'] = 'advanced';
	}
} 

if ($_REQUEST['save_search_op'] == 'Edit') {
	if ($_REQUEST['saved_search']) {
		$db->query("SELECT data FROM tech_ticket_search WHERE id = '$_REQUEST[saved_search]' AND techid = '$user[id]'");
		$data = $db->row_array();
		$data = unserialize($data[data]);
		$_REQUEST['custom_fields'] = unserialize($data['custom_fields']);
		$_REQUEST['do'] = '';
		$_REQUEST['searchtype'] = 'advanced';
		foreach ($save_items AS $key => $val) {
			$_REQUEST[$val] = $data[$val];
		}
	} else {
		$message = "You must specify a valid search to edit.";
		$_REQUEST['do'] = '';
		$_REQUEST['searchtype'] = 'advanced';
	}
} 

if ($_REQUEST['save_search_op'] == 'Delete') {
	if ($_REQUEST[saved_search]) {
		$db->query("DELETE FROM tech_ticket_search WHERE id = '$_REQUEST[saved_search]' AND techid = '$user[id]'");
		$_REQUEST['do'] = '';
		$_REQUEST['searchtype'] = 'advanced';
		$message = "Search deleted.";
	} else {
		$message = "You must specify a valid search to delete.";
		$_REQUEST['do'] = '';
		$_REQUEST['searchtype'] = 'advanced';
	}
} 

if ($_REQUEST['save_search_op'] == 'Run') {
	if ($_REQUEST['saved_search']) {
		$db->query("SELECT data FROM tech_ticket_search WHERE id = '$_REQUEST[saved_search]' AND techid = '$user[id]'");
		$data = $db->row_array();
		$data = unserialize($data[data]);
		foreach ($save_items AS $key => $val) {
			$_REQUEST[$val] = $data[$val];
		}
		$_REQUEST['custom_fields'] = unserialize($data['custom_fields']);
		$_REQUEST['do'] = 'search';
		$_REQUEST['searchtype'] = 'advanced';
	} else {
		$_REQUEST['do'] = '';
		$_REQUEST['searchtype'] = 'advanced';
		$message = "You must specify a valid search to run.";
	}
}

// Handle requests from tech/home/ticket_select.php
if ($_REQUEST['do'] == 'listown') {
	$_REQUEST['tech'] = $user['id'];
	$_REQUEST['do'] = 'search';
	$_REQUEST['unresolved'] = 1;
	$_REQUEST['resolved'] = 0;
	$_REQUEST['awaiting_tech'] = 1;
	$_REQUEST['awaiting_user'] = 0;
} elseif ($_REQUEST['do'] == 'listnew') {
	$_REQUEST['tech'] = '-1';
	$_REQUEST['do'] = 'search';
	$_REQUEST['unresolved'] = 1;
	$_REQUEST['resolved'] = 0;
	$_REQUEST['awaiting_tech'] = 1;
	$_REQUEST['awaiting_user'] = 0;
} elseif ($_REQUEST['do'] == 'listothers') {
	$_REQUEST['tech'] = 'assigned';
	$_REQUEST['do'] = 'search';
	$_REQUEST['unresolved'] = 1;
	$_REQUEST['resolved'] = 0;
	$_REQUEST['awaiting_tech'] = 1;
	$_REQUEST['awaiting_user'] = 0;
}

////////////////////////// GET TECH/CATEGORY/PRIORITY INFORMATION //////////////////////////

// if edit ticket
$cat_array[-2] = 'Any';
$cat_array[-1] = 'None';
$db->query("SELECT * FROM ticket_cat ORDER BY cat_order");
while ($cat = $db->row_array()) {
	$cat_array[$cat[id]] = $cat[name];
	// for select menus
	$html .= "new Array(true,\"category|Change Category\",\"$cat[id]|$cat[name]\"),\n";
}

// if edit + assign to tech
$tech_array[-2] = 'Any';
$tech_array[-1] = 'Unassigned';
$db->query("SELECT * FROM tech ORDER BY username");
while ($tech = $db->row_array()) {
	$tech_array[$tech[id]] = $tech[username];
	$html .= "new Array(true,\"tech|Assign to tech\",\"$tech[id]|$tech[username]\"),";
}

// if edit ticket
$pri_array[-2] = 'Any';
$pri_array[-1] = 'None';
$db->query("SELECT * FROM ticket_pri ORDER BY pri_order");
while ($pri = $db->row_array()) {
	$pri_array[$pri[id]] = $pri[name];
	$html .= "new Array(true,\"priority|Change Priority\",\"$pri[id]|$pri[name]\"),\n";
}

###################################### BASIC TICKET SEARCH FORM ################################# 

if ($message) {
	alert($message);
}

if ($_REQUEST['searchtype'] == "simple" AND !$_REQUEST['Jump']) {
	$help1 = table_thelp('<B>Is Resolved</B>', 'Tickets - Searching', 'Is Resolved');
	$help2 = table_thelp('<B>Awaiting Tech</B>', 'Tickets - Searching', 'Awaiting Tech');
	$help3 = table_thelp('<B>Categories</B>', 'Tickets - Searching', 'Categories');
	$help4 = table_thelp('<B>Priorities</B>', 'Tickets - Searching', 'Priorities');
	$help5 = table_thelp('<B>Tech Owner</B>', 'Tickets - Searching', 'Tech Owner Resolved');
	$help6 = table_thelp('<B>User Owner</B>', 'Tickets - Searching', 'User Owner');
	$help7 = table_thelp('<B>Match Subject</B>', 'Tickets - Searching', 'Match Subject');
	$help8 = table_thelp('<B>Match Message</B>', 'Tickets - Searching', 'Match Message');
	$table[] = array($help1, $help2, $help3, $help4, $help5, $help6);

	$table[] = array(
		'<table border="0"><tr><td>Resolved</td><td>' . form_checkbox_single('resolved', 1, $_REQUEST['resolved']) . '</td></tr><tr><td>Unresolved</td><td>' . form_checkbox_single('unresolved', 1, $_REQUEST['unresolved']) . "</td></tr></table>",

		'<table border="0"><tr><td>Awaiting Tech</td><td>' . form_checkbox_single('awaiting_tech', 1, $_REQUEST['awaiting_tech']) . '</td></tr><tr><td>Awaiting User</td><td>' . form_checkbox_single('awaiting_user', 1, $_REQUEST['awaiting_user']) . "</td></tr></table>",
		form_select('category', $cat_array, '', $_REQUEST['category'], '', '', 5),
		form_select('priority', $pri_array, '', $_REQUEST['priority'], '', '', 5),
		form_select('tech', $tech_array, '', $_REQUEST['tech'], '', '', 5),
		'&nbsp;username or email<br />' . form_input('user_owner', $_REQUEST['user_owner'], 15) . " <a onClick=\"openWindow('./../users/quickfind.php?name=searchform.user_owner', 450, 600, 'userfind')\">".html_image('tech/pribut040.gif')."</a>"
	);

	$table[] = array(
		"<table border=\"0\"><tr><td>$help7</td><td>" .  
			form_input('subject', $_REQUEST['subject'], 30) . 
			'&nbsp;&nbsp;' . 
			form_select('subjectoption', array('OR', 'AND', 'PHRASE'), NULL, $_REQUEST['subjectoption'], 1) . 
			"&nbsp;&nbsp;(use % for wildcard)</td></tr><tr><td>$help8</td><td>" .  
			form_input('message', $_REQUEST['message'], 30) . 
			'&nbsp;&nbsp;' . 
			form_select('messageoption', array('OR', 'AND', 'PHRASE'), NULL, $_REQUEST['messageoption'], 1) . 
			'&nbsp;&nbsp;' . 
			form_select('messageowner', array('EITHER', 'TECH', 'USER'), NULL, $_REQUEST['messageowner'], 1) . 
			'&nbsp;&nbsp;(use % for wildcard)</td></tr></table>'
	);

		table_header('Search for Tickets', 'ticketsearch.php', array('do' => 'search'), '', 'searchform');
		table_content('', $table);
		table_footer('Search');
		unset($columns, $table);
}

####################################### ADVANCED TICKET SEARCH FORM #################################### 

if ($_REQUEST['searchtype'] == "advanced" AND !$_REQUEST['Jump']) {

	$table[] = table_midheader('Ticket Properties');

	// resolved
	$bit = 'Resolved ' . form_checkbox_single('resolved', 1, $_REQUEST['resolved']) . ' Unresolved ' . form_checkbox_single('unresolved', 1, $_REQUEST['unresolved']);
	$table[] = array(table_thelp('<B>Is Resolved</B>', 'Tickets - Searching', 'Is Resolved'), $bit);

	// awaiting whom
	$bit = 'Awaiting Tech ' . form_checkbox_single('awaiting_tech', 1, $_REQUEST['awaiting_tech']) . ' Awaiting User ' . form_checkbox_single('awaiting_user', 1, $_REQUEST['awaiting_user']);
	$table[] = array(table_thelp('<b>Awaiting Tech Response<b>', 'Tickets - Searching', 'Awaiting Tech'), $bit);

	// Spam or not?
	$bit = 'Spam' . form_checkbox_single('nodisplay', 1, $_REQUEST['nodisplay']);
	$table[] = array(table_thelp('<b>Hidden Tickets<b>', 'Tickets - Searches', 'Hidden Tickets'), $bit);

	// id range
	$bit = form_input('greater', $_REQUEST['greater'], 3) . " < <b>ID</b> > " . form_input('lessthan', $_REQUEST['lessthan'], 3);
	$table[] = array(table_thelp('<b>Ticket ID Range</b>', 'Tickets - Searches', 'Ticket ID Range'), $bit);

	// cats/pri/techowner
	$table[] = array(table_thelp('<b>Categories</b>', 'Tickets - Searches', 'Categories'), form_select('category', $cat_array, '', $_REQUEST['category'], '', '', 3));
	$table[] = array(table_thelp('<b>Priorities</b>', 'Tickets - Searches', 'Priorities'), form_select('priority', $pri_array, '', $_REQUEST['priority'], '', '', 3));
	$table[] = array(table_thelp('<b>Tech Owner</b>', 'Tickets - Searches', 'Tech Owner'), form_select('tech', $tech_array, '', $_REQUEST['tech'], '', '', 3));

	// user owner
	$bit = form_input('user_owner', $_REQUEST['user_owner'], 30) . " <a onClick=\"openWindow('./../users/quickfind.php?name=searchform.user_owner', 450, 600, 'userfind')\">".html_image('tech/bul084.gif')."</a>";
	$table[] = array(table_thelp('<b>Username or E-mail</b>', 'Tickets - Searches', 'User Owner'), $bit);

	$table[] = table_midheader('Search Words');

	// subject
	$bit = form_input('subject', $_REQUEST['subject'], 30) . ' ' . form_select('subjectoption', array('AND', 'OR', 'PHRASE'), '', $_REQUEST['subjectoption'], 1);
	$table[] = array(table_thelp('<b>Match Subject</b>', 'Tickets - Searches', 'Match Subject'), $bit);

	// message
	$bit =  form_input('message', $_REQUEST['message'], 30) . ' ' . form_select('messageoption', array('AND', 'OR', 'PHRASE'), '', $_REQUEST['messageoption'], 1) . ' ' . form_select('messageowner', array('EITHER', 'TECH', 'USER'), '', $_REQUEST['messageowner'], 1);
	$table[] = array(table_thelp('<b>Match Message</b>', 'Tickets - Searches', 'Match Message'), $bit);

	$table[] = table_midheader('Dates');

	// started
	if ($_REQUEST['ydate_started_start']) {
		$date = @strtotime("$_REQUEST[ydate_started_start]-$_REQUEST[mdate_started_start]-$_REQUEST[ddate_started_start]");
	} else {
		$date = NULL;
	}

	if ($_REQUEST['ydate_started_end']) {
		$date2 = @strtotime("$_REQUEST[ydate_started_end]-$_REQUEST[mdate_started_end]-$_REQUEST[ddate_started_end]");
	} else {
		$date2 = NULL;
	}

	$bit =  'From ' . form_date('date_started_start', '', $date, '', 1) . 
	"<a onClick=\"datePop('searchform','date_started_start')\">".html_image('tech/bul102.gif')."</a>&nbsp;&nbsp;To " . form_date('date_started_end', '', $date2, '', 1) .
	"<a onClick=\"datePop('searchform', 'date_started_end')\">".html_image('tech/bul102.gif')."</a>";
	$table[] = array(table_thelp('<b>Date Started</b>', 'Tickets - Searches', 'Date Started'), $bit);
	unset($date, $date2);

	// resolved
	if ($_REQUEST['ydate_resolved_start']) {
		$date = @strtotime("$_REQUEST[ydate_resolved_start]-$_REQUEST[mdate_resolved_start]-$_REQUEST[ddate_resolved_start]");
	} else {
		$date = NULL;
	}

	if ($_REQUEST['ydate_resolved_end']) {
		$date2 = @strtotime("$_REQUEST[ydate_resolved_end]-$_REQUEST[mdate_resolved_end]-$_REQUEST[ddate_resolved_end]");
	} else {
		$date2 = NULL;
	}

	$bit =  'From ' . form_date('date_resolved_start', '', $date, '', 1) . 
	"<a onClick=\"datePop('searchform', 'date_resolved_start')\">".html_image('tech/bul102.gif')."</a>&nbsp;&nbsp;To " . form_date('date_resolved_end', '', $date2, '', 1) .
	"<a onClick=\"datePop('searchform', 'date_resolved_end')\">".html_image('tech/bul102.gif')."</a>";
	$table[] = array(table_thelp('<b>Date Resolved</b>', 'Tickets - Searches', 'Date Resolved'), $bit);
	unset($date, $date2);

	// last activity
	$date = @strtotime("$_REQUEST[ydate_activity_start]-$_REQUEST[mdate_activity_start]-$_REQUEST[ddate_activity_start]");
	$date2 = @strtotime("$_REQUEST[ydate_activity_end]-$_REQUEST[mdate_activity_end]-$_REQUEST[ddate_activity_end]");

	if ($_REQUEST['ydate_resolved_start']) {
		$date = @strtotime("$_REQUEST[ydate_resolved_start]-$_REQUEST[mdate_resolved_start]-$_REQUEST[ddate_resolved_start]");
	} else {
		$date = NULL;
	}

	if ($_REQUEST['ydate_resolved_end']) {
		$date2 = @strtotime("$_REQUEST[ydate_resolved_end]-$_REQUEST[mdate_resolved_end]-$_REQUEST[ddate_resolved_end]");
	} else {
		$date2 = NULL;
	}

	$bit =  'From ' . form_date('date_activity_start', '', $date, '', 1) . 
	"<a onClick=\"datePop('searchform', 'date_activity_start')\">".html_image('tech/bul102.gif')."</a>&nbsp;&nbsp;To " . form_date('date_activity_end', '', $date2, '', 1) .
	"<a onClick=\"datePop('searchform', 'date_activity_end')\">".html_image('tech/bul102.gif')."</a>";
	$table[] = array(table_thelp('<b>Date of Last Activity</b>', 'Tickets - Searches', 'Date of Last Activity'), $bit);
	unset($date, $date2);

	$db->query("SELECT * FROM ticket_def WHERE tech_viewable");

	if ($db->num_rows()) {
		$table[] = table_midheader('Custom Ticket Fields');
	}

	while ($ticket_data = $db->row_array()) {

		$bit = field_def($ticket_data, 'redo', $_REQUEST['custom_fields'][$ticket_data['name']], $_REQUEST['custom_fields']["extra" . $ticket_data['name']], '', 'custom_fields', 1, $_REQUEST['custom_fields'][$ticket_data['name'].'_match'], $_REQUEST['custom_fields'][$ticket_data['name'].'_not']);
		$name = unserialize($ticket_data[display_name]);
		$name = $name[$settings[default_language]];
		$ticket_fields_array[$ticket_data[id]] = array(
				'display_name' => $name,
				'name' => $ticket_data[name]
			);
		$table[] = array("<b>$name</b>", $bit);
	}

	$table[] = table_midheader('Named Searches and Results');

	$db->query("SELECT id, save_name, save_type FROM tech_ticket_search WHERE techid = '$user[id]' ORDER BY save_type, save_name");
	$saved_searches = array();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -