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

📄 main.php

📁 本代码是为客户联系管理而做的系统
💻 PHP
字号:
<?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: main.php,v $
// | $Date: 2004/02/10 01:34:28 $
// | $Revision: 1.72 $
// +-------------------------------------------------------------+
// | File Details:
// | - Technician home page.
// +-------------------------------------------------------------+

error_reporting(E_ALL ^ E_NOTICE);

include "./../global.php";
require_once(INCLUDE_PATH.'functions/calendar_functions.php');

tech_nav('Home');

echo '
<SCRIPT language="JavaScript">
if (parent.location.href == self.location.href) {
	window.location.href = \'index.php\';
}
</SCRIPT>
';

$overdue = 0;
$month = date('m');
$year = date('Y');

############################### GET TICKETS ###############################

$own_total = 0; $other_total = 0; $new_total = 0;

$db->query("
	SELECT ticket.id AS id, subject, tech, category, ticket_cat.name AS
	name, user.username AS username 
	FROM ticket 
	LEFT JOIN user ON ticket.userid = user.id 
	LEFT JOIN ticket_cat ON ticket.category = ticket_cat.id 
	WHERE is_open
		AND awaiting_tech 
		AND !nodisplay 
		" . iff($user[cats_admin], " AND category NOT IN ($user[cats_admin]) ") . "
	ORDER BY tech, date_lastreply
	LIMIT 500
");

// there are 500 tickets, we need to say there are missing results
if ($db->num_rows() == 500) {
	$max_tickets_reached = true;
}

$own_tickets[0] = 'Select...';
$other_tickets[0] = 'Select...';
$new_tickets[0] = 'Select...';

while ($res = $db->row_array()) {
	
	if (strlen($res['subject']) > 30) {
		$res['subject'] = substr($res['subject'], 0, 20) . "...";
	}

	if (strlen($res['username']) > 8) {
		$res['username'] = substr($res['username'], 0, 8);
	}

	if (strlen($res['name']) > 8) {
		$res['name'] = substr($res['name'], 0, 8);
	}
	
	if (!$res['category']) {
		$res['name'] = 'None';
	}

	if ($res['tech'] == $user['id']) {
		if ($own_total < 100) {
			$own_tickets["../tickets/ticketsearch.php?Jump=1&actiontype=your_category&your_category[0]=-2&ticketid=$res[id]"] = "#$res[id]: $res[subject] [$res[name]] [$res[username]]";
			$own_total++;
		}
	}
	if (($res['tech']) AND ($res['tech'] != $user['id'])) {
		if ($other_total < 100) {
			$other_tickets["../tickets/ticketsearch.php?Jump=1&actiontype=other_category&other_category[0]=-2&ticketid=$res[id]"] = "#$res[id]: $res[subject] [$res[name]] [$res[username]]";
			$other_total++;
		}
	}
	if (!$res['tech']) {
		if ($new_total < 100) {
			$new_tickets["../tickets/ticketsearch.php?Jump=1&actiontype=category&unassigned_category[0]=-2&ticketid=$res[id]"] = "#$res[id]: $res[subject] [$res[name]] [$res[username]]";
			$new_total++;
		}
	}
}

if (!$own_total) {
	$own_tickets = '&nbsp;&nbsp;<I>None</I><BR>';
} else {
	$own_tickets = form_select('own_ticket', $own_tickets, NULL, NULL, NULL, NULL, NULL, "onChange=\"quick_jump(own_ticket)\" style='width:325px'")
		. form_submit('Go', 'own_tickets_submit');
}

if (!$new_total) {
	$new_tickets = '&nbsp;&nbsp;<I>None</I><BR>';
} else {
	$new_tickets = form_select('new_ticket', $new_tickets, NULL, NULL, NULL, NULL, NULL, "onChange=\"quick_jump(new_ticket)\" style='width:325px'")
		. form_submit('Go', 'new_tickets_submit');
}

if (!$other_total) {
	$other_tickets = '&nbsp;&nbsp;<I>None</I><BR>';
} else {
	$other_tickets = form_select('other_ticket', $other_tickets, NULL, NULL, NULL, NULL, NULL, "onChange=\"quick_jump(other_ticket)\" style='width:325px'")
		. form_submit('Go', 'other_tickets_submit');
}

############################### PRIVATE MESSAGES ###############################

$db->query("SELECT tech.username AS sender, pm_source.id, title 
	FROM tech, pm_source, pm_relations 
	WHERE pm_source.fromid = tech.id 
		AND pm_relations.pmid = pm_source.id 
		AND pm_relations.techid = '$user[id]'
		AND !pm_relations.is_read
	ORDER BY pm_source.timestamp
");

$message_total = $db->num_rows(); $count = 0;
while ($res = $db->row_array()) {
	$messages["../teamwork/pms.php?do=read&id=$res[id]"] = "[$res[sender]] $res[title]";
}

if ($message_total) {
	$messages = form_select('messages', $messages, NULL, NULL, NULL, NULL, NULL, "onChange=\"quick_jump(messages)\" style='width:250px'")
		. form_submit('Go', 'messages_submit');
} else {
	$messages = NULL;
}

############################### TASKS AND TICKET WATCHES ###############################

$today = date('Y-m-d');
$taskdata = cachetasks(NULL, $today, NULL, NULL, NULL, NULL, NULL, NULL);
$task_count = 0; $tickwatch_count = 0; $task_more = 0; $tickwatch_more = 0; $today_ts = strtotime($today);
if (is_array($taskdata)) {
	foreach ($taskdata AS $key2 => $val2) {
		foreach ($val2 AS $key => $val) {
			if (!$val[5]) {
				$origdate = $val[3];
				$val[3] = our_date(strtotime($val[3]), NULL, 'M j');
				if ($val[7]) { // If a ticket watch
					if (strlen($val[1]) > 15) {
						$val[1] = substr($val[1], 0, 40) . '...';
					}
					if ($today_ts > strtotime($origdate)) {
						$od_watches["../tickets/ticketview.php?id=$val[0]"] = "$val[1] [$val[3]]";
						$odtickwatch_count++;
					} else {
						$watches["../tickets/ticketview.php?id=$val[0]"] = "$val[1] [$val[3]]";
						$tickwatch_count++;
					}
				} else { // If a calendar task
					if (strlen($val[1]) > 15) {
						$val[1] = substr($val[1], 0, 40) . '...';
					}
					if ($today_ts > strtotime($origdate)) {
						if ($val[6]) {
							$od_tasks["../calendar/viewtask.php?id=$val[0]&date=$val[3]"] = "$val[1] [$val[3]]";
						} else {
							$od_tasks["../calendar/viewtask.php?id=$val[0]"] = "$val[1] [$val[3]]";
						}
						$odtask_count++;
					} else {
						if ($val[6]) {
							$tasks["../calendar/viewtask.php?id=$val[0]&date=$val[3]"] = "$val[1] [$val[3]]";
						} else {
							$tasks["../calendar/viewtask.php?id=$val[0]"] = "$val[1] [$val[3]]";
						}
						$task_count++;
					}
				}
			}
		}
	}
}

if (!$tickwatch_count) {
	$watches = '&nbsp;&nbsp;<I>None</I><BR>';
} else {
	$watches = form_select('watches', $watches, NULL, NULL, NULL, NULL, NULL, "onChange=\"quick_jump(watches)\" style='width:280px'")
		. form_submit('Go', 'watches_submit');
}

if (!$odtickwatch_count) {
	$od_watches = '&nbsp;&nbsp;<I>None</I><BR>';
} else {
	$od_watches = form_select('odwatches', $od_watches, NULL, NULL, NULL, NULL, NULL, "onChange=\"quick_jump(odwatches)\" style='width:280px'")
		. form_submit('Go', 'odwatches_submit');
}

if (!$task_count) {
	$tasks = '&nbsp;&nbsp;<I>None</I><BR>';
} else {
	$tasks = form_select('tasks', $tasks, NULL, NULL, NULL, NULL, NULL, "onChange=\"quick_jump(tasks)\" style='width:280px'")
		. form_submit('Go', 'tasks_submit');
}

if (!$odtask_count) {
	$od_tasks = '&nbsp;&nbsp;<I>None</I><BR>';
} else {
	$od_tasks = form_select('odtasks', $od_tasks, NULL, NULL, NULL, NULL, NULL, "onChange=\"quick_jump(odtasks)\" style='width:280px'")
		. form_submit('Go', 'odtasks_submit');
}

############################### FAQ ARTICLES/COMMENTS AWAITING VALIDATION ###############################

$result = $db->query_return("
	SELECT COUNT(*) AS total
	FROM faq_articles 
	WHERE to_validate 
");

$faq_count = $result['total'];

$result = $db->query_return("
	SELECT COUNT(*) AS total
	FROM faq_comments
	WHERE new
");

$faq_comment_count = $result['total'];

############################### USERS AWAITING VALIDATION ###############################

if ($user[p_approve_new_registrations]) {
	$validations = $db->query_return('SELECT COUNT(*) AS total FROM user WHERE awaiting_manual_validation AND !awaiting_validation');
	$validations = $validations['total'];
}

############################### GET SAVED SEARCHES ###############################

$db->query("SELECT id, save_name FROM tech_ticket_search WHERE save_type = 'search' AND techid = '$user[id]' ORDER BY save_name");
while ($saves = $db->row_array()) {
	$saved_searches["../tickets/ticketsearch.php?saved_search=$saves[id]"] = $saves['save_name'];
}
if (is_array($saved_searches)) {
	$savedsearches = form_select('saved_search', $saved_searches, NULL, NULL, NULL, NULL, NULL, "style='width:250px'") . form_submit('Go', 'run_saved') . form_hidden('save_search_op', 'Run');
} else {
	$savedsearches = 'No searches defined (<a href="./../tickets/ticketsearch.php?searchtype=advanced">create new search</a>)';
}

############################### DISPLAY EVERYTHING ###############################

echo "<table width=\"100%\" CELLPADDING=\"10\" BORDER=\"0\"><tr><td width=\"50%\" valign=\"top\">\n\n";
echo "<FORM NAME=\"jumps\" ID=\"jumps\" ACTION=\"go.php\" METHOD=\"POST\">";

$db->query("SELECT tech_news.*, tech.username
		FROM tech_news 
		LEFT JOIN tech ON (tech_news.techid = tech.id)
		ORDER BY date
		LIMIT 0,5
");

$news_table = "<table>";
while ($result = $db->row_array()) {
	$news_table .= "<tr><td><IMG SRC=\"../../images/tech/bul080.gif\" BORDER=\"0\"></td><td><a href=\"./../news/technews.php?do=view&id=$result[id]\">$result[title]</a></td>";
}
$news_table .= "</tr></table>";

fancy_table('100%', "Tech News", $news_table);

$tickets_table = "
<TABLE BORDER=\"0\" CELLPADDING=\"3\" CELLPADDING=\"0\">
<TR VALIGN=\"TOP\">
<TD>";

if ($max_tickets_reached) {
	$tickets_table .= "<i>Over 500 tickets are awaiting a response, not all tickets have been listed here. Please run a <a href=\"./../tickets/ticketsearch.php\">search</a> to view all tickets awaiting a response.</i><br /><br />";
}

$tickets_table .= "<IMG SRC=\"../../images/tech/bul080.gif\" BORDER=\"0\">&nbsp;Your Tickets ($own_total)<BR>$own_tickets</TD></TR>";

if ($user['p_tech_view']) {
	$tickets_table .= "</TD><TR><TD COLSPAN=\"2\"><IMG SRC=\"../../images/tech/bul080.gif\" BORDER=\"0\">&nbsp;Others' Tickets ($other_total)<BR>
		$other_tickets";
}

$tickets_table .= "<TR><TD><IMG SRC=\"../../images/tech/bul080.gif\" BORDER=\"0\">&nbsp;New (Unowned) Tickets ($new_total)<BR>$new_tickets";

$tickets_table .= "</TD>
</TR></TABLE>\n";

fancy_table('100%', "Tickets Awaiting a Response", $tickets_table);

$messages_table = "
<TABLE BORDER=\"0\" CELLPADDING=\"3\" CELLPADDING=\"0\">
<TR VALIGN=\"TOP\">
<TD><IMG SRC=\"../../images/tech/bul080.gif\" BORDER=\"0\">&nbsp;$message_total New Message(s)<BR>$messages</TD></TR></TABLE>";

fancy_table('100%', "New Private Messages", $messages_table);

$faqs_table = "
<TABLE BORDER=\"0\" CELLPADDING=\"3\" CELLPADDING=\"0\">
<TR VALIGN=\"TOP\">
<TD><IMG SRC=\"../../images/tech/bul080.gif\" BORDER=\"0\">&nbsp;<a href=\"./../faq/validate.php\">$faq_count New FAQ Article(s)</a></TD><TD><IMG SRC=\"../../images/tech/bul080.gif\" BORDER=\"0\">&nbsp;<a href=\"./../faq/comments.php\">$faq_comment_count New Comment(s)</a><BR>$faq_comments</TD></TR></TABLE>";

fancy_table('100%', "FAQ Articles and Comments", $faqs_table);

$savedsearches_table = "
<TABLE BORDER=\"0\" CELLPADDING=\"3\" CELLPADDING=\"0\">
<TR VALIGN=\"TOP\">
<TD><IMG SRC=\"../../images/tech/bul080.gif\" BORDER=\"0\">&nbsp; $savedsearches<BR></TD></TR></TABLE>";

fancy_table('100%', "Your Saved Search Queries", $savedsearches_table);

if ($user[p_approve_new_registrations]) {
	$validations_table = "<TABLE BORDER=\"0\" CELLPADDING=\"3\" CELLPADDING=\"0\">
		<TR VALIGN=\"TOP\">
		<TD><A HREF=\"../users/index.php\"><IMG SRC=\"../../images/tech/bul080.gif\" BORDER=\"0\">&nbsp;$validations new user(s)</A></TR></TABLE>";
	fancy_table('100%', "New Users", $validations_table);
}

echo "</TD><TD WIDTH=\"50%\">";

$tasks_table = "
<TABLE BORDER=\"0\" CELLPADDING=\"3\" CELLPADDING=\"0\">
<TR VALIGN=\"TOP\"><TD><IMG SRC=\"../../images/tech/bul080.gif\" BORDER=\"0\">&nbsp;To Do Task(s)<BR>$tasks</TD></TR>" . 
iff($odtask_count, "<TR><TD><IMG SRC=\"../../images/tech/bul080.gif\" BORDER=\"0\">&nbsp;Overdue Task(s)<BR>$od_tasks</td></tr>") .
"<tr><td><IMG SRC=\"../../images/tech/bul080.gif\" BORDER=\"0\">&nbsp;Tickets to Visit Today<BR>$watches</TD></tr>" .
iff($odtickwatch_count, "<tr><td><IMG SRC=\"../../images/tech/bul080.gif\" BORDER=\"0\">&nbsp;Overdue Ticket Reminders<BR>$od_watches</td></tr>") .
"</table>";

fancy_table('100%', "Your Tasks", $tasks_table);

fancy_table('100%', "Your Calendar", "<br /><center>" . make_month($month, $year) . "</center>");

$links_table = "<table>";

if ($user['p_create_users']) {
	$links_table .= "<tr><td><img src=\"../../images/tech/bul083.gif\" border=\"0\">&nbsp;&nbsp;</td><td><A HREF=\"../users/new.php\">Create a new user</A></td></tr>";
}

$links_table .= "<tr><td><img src=\"../../images/tech/bul083.gif\" border=\"0\">&nbsp;&nbsp;</td><td><A HREF=\"../tickets/newticket.php\">Start a new ticket</A></td></tr>";
$links_table .= "<tr><td><img src=\"../../images/tech/bul083.gif\" border=\"0\">&nbsp;&nbsp;</td><td><A HREF=\"../teamwork/newpm.php\">Send a private message</A></td></tr>";

if ($user['p_add_k']) {
	$links_table .= "<tr><td><img src=\"../../images/tech/bul083.gif\" border=\"0\">&nbsp;&nbsp;</td><td><A HREF=\"../faq/view.php?do=add&catid=0\">Add a new FAQ entry</A></td></tr>";
}

$links_table .= "<tr><td><img src=\"../../images/tech/bul083.gif\" border=\"0\">&nbsp;&nbsp;</td><td><A HREF=\"../calendar/new.php\">Create a new task</A></td></tr>";

$links_table .= "</table>";

echo "</FORM>";

echo "<FORM NAME=\"form\" ID=\"form\" ACTION=\"quicksearch.php\" METHOD=\"POST\">";

echo "<TABLE BORDER=\"0\" CELLPADDING=\"0\" CELLPADDING=\"0\">
<TR VALIGN=\"TOP\">
<TD width=\"50%\">";

fancy_table('100%', 'Quick Links', $links_table);

$search_table .= "
	<table>
	<tr><td><img src=\"../../images/tech/bul084.gif\" border=\"0\">&nbsp;&nbsp;Users</td></tr>
	<tr><td>" . form_input('user_search', 'username / email', 30, '', '', "onfocus=\"this.value='';this.form.ticket_search.value='';\"") 
	. "</td></tr><tr><td><img src=\"../../images/tech/bul084.gif\" border=\"0\">&nbsp;&nbsp;Tickets</td></tr><tr><td>"
	. form_input('ticket_search', 'id / ref', 30, '', '', "onfocus=\"this.value='';this.form.user_search.value='';\"")
	. "<CENTER>" . form_submit('Search', 'search') . "</CENTER></td></tr></table>";

echo "</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td width=\"50%\">";

fancy_table('100%', 'Quick Search', $search_table);

echo "</FORM></td></tr></table>\n";

echo "</td></tr></table>\n";

?>
<SCRIPT LANGUAGE="JavaScript">
	function quick_jump(f){
		var opt = f.selectedIndex;
		var url = f.options[opt].value;
		if (url != 0) {
			self.document.location = url;
		}
		return true;
	}
</SCRIPT>

<?php

tech_footer();
?>

⌨️ 快捷键说明

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