main.php
上传用户:gzy2002
上传日期:2010-02-11
资源大小:1785k
文件大小:15k
源码类别:

电子政务应用

开发平台:

Java

  1. <?php
  2. // +-------------------------------------------------------------+
  3. // | DeskPRO v [2.0.1 Production]
  4. // | Copyright (C) 2001 - 2004 Headstart Solutions Limited
  5. // | Supplied by WTN-WDYL
  6. // | Nullified by WTN-WDYL
  7. // | Distribution via WebForum, ForumRU and associated file dumps
  8. // +-------------------------------------------------------------+
  9. // | DESKPRO IS NOT FREE SOFTWARE
  10. // +-------------------------------------------------------------+
  11. // | License ID : Full Enterprise License =) ...
  12. // | License Owner : WTN-WDYL Team
  13. // +-------------------------------------------------------------+
  14. // | $RCSfile: main.php,v $
  15. // | $Date: 2004/02/10 01:34:28 $
  16. // | $Revision: 1.72 $
  17. // +-------------------------------------------------------------+
  18. // | File Details:
  19. // | - Technician home page.
  20. // +-------------------------------------------------------------+
  21. error_reporting(E_ALL ^ E_NOTICE);
  22. include "./../global.php";
  23. require_once(INCLUDE_PATH.'functions/calendar_functions.php');
  24. tech_nav('Home');
  25. echo '
  26. <SCRIPT language="JavaScript">
  27. if (parent.location.href == self.location.href) {
  28. window.location.href = 'index.php';
  29. }
  30. </SCRIPT>
  31. ';
  32. $overdue = 0;
  33. $month = date('m');
  34. $year = date('Y');
  35. ############################### GET TICKETS ###############################
  36. $own_total = 0; $other_total = 0; $new_total = 0;
  37. $db->query("
  38. SELECT ticket.id AS id, subject, tech, category, ticket_cat.name AS
  39. name, user.username AS username 
  40. FROM ticket 
  41. LEFT JOIN user ON ticket.userid = user.id 
  42. LEFT JOIN ticket_cat ON ticket.category = ticket_cat.id 
  43. WHERE is_open
  44. AND awaiting_tech 
  45. AND !nodisplay 
  46. " . iff($user[cats_admin], " AND category NOT IN ($user[cats_admin]) ") . "
  47. ORDER BY tech, date_lastreply
  48. LIMIT 500
  49. ");
  50. // there are 500 tickets, we need to say there are missing results
  51. if ($db->num_rows() == 500) {
  52. $max_tickets_reached = true;
  53. }
  54. $own_tickets[0] = 'Select...';
  55. $other_tickets[0] = 'Select...';
  56. $new_tickets[0] = 'Select...';
  57. while ($res = $db->row_array()) {
  58. if (strlen($res['subject']) > 30) {
  59. $res['subject'] = substr($res['subject'], 0, 20) . "...";
  60. }
  61. if (strlen($res['username']) > 8) {
  62. $res['username'] = substr($res['username'], 0, 8);
  63. }
  64. if (strlen($res['name']) > 8) {
  65. $res['name'] = substr($res['name'], 0, 8);
  66. }
  67. if (!$res['category']) {
  68. $res['name'] = 'None';
  69. }
  70. if ($res['tech'] == $user['id']) {
  71. if ($own_total < 100) {
  72. $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]]";
  73. $own_total++;
  74. }
  75. }
  76. if (($res['tech']) AND ($res['tech'] != $user['id'])) {
  77. if ($other_total < 100) {
  78. $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]]";
  79. $other_total++;
  80. }
  81. }
  82. if (!$res['tech']) {
  83. if ($new_total < 100) {
  84. $new_tickets["../tickets/ticketsearch.php?Jump=1&actiontype=category&unassigned_category[0]=-2&ticketid=$res[id]"] = "#$res[id]: $res[subject] [$res[name]] [$res[username]]";
  85. $new_total++;
  86. }
  87. }
  88. }
  89. if (!$own_total) {
  90. $own_tickets = '&nbsp;&nbsp;<I>None</I><BR>';
  91. } else {
  92. $own_tickets = form_select('own_ticket', $own_tickets, NULL, NULL, NULL, NULL, NULL, "onChange="quick_jump(own_ticket)" style='width:325px'")
  93. . form_submit('Go', 'own_tickets_submit');
  94. }
  95. if (!$new_total) {
  96. $new_tickets = '&nbsp;&nbsp;<I>None</I><BR>';
  97. } else {
  98. $new_tickets = form_select('new_ticket', $new_tickets, NULL, NULL, NULL, NULL, NULL, "onChange="quick_jump(new_ticket)" style='width:325px'")
  99. . form_submit('Go', 'new_tickets_submit');
  100. }
  101. if (!$other_total) {
  102. $other_tickets = '&nbsp;&nbsp;<I>None</I><BR>';
  103. } else {
  104. $other_tickets = form_select('other_ticket', $other_tickets, NULL, NULL, NULL, NULL, NULL, "onChange="quick_jump(other_ticket)" style='width:325px'")
  105. . form_submit('Go', 'other_tickets_submit');
  106. }
  107. ############################### PRIVATE MESSAGES ###############################
  108. $db->query("SELECT tech.username AS sender, pm_source.id, title 
  109. FROM tech, pm_source, pm_relations 
  110. WHERE pm_source.fromid = tech.id 
  111. AND pm_relations.pmid = pm_source.id 
  112. AND pm_relations.techid = '$user[id]'
  113. AND !pm_relations.is_read
  114. ORDER BY pm_source.timestamp
  115. ");
  116. $message_total = $db->num_rows(); $count = 0;
  117. while ($res = $db->row_array()) {
  118. $messages["../teamwork/pms.php?do=read&id=$res[id]"] = "[$res[sender]] $res[title]";
  119. }
  120. if ($message_total) {
  121. $messages = form_select('messages', $messages, NULL, NULL, NULL, NULL, NULL, "onChange="quick_jump(messages)" style='width:250px'")
  122. . form_submit('Go', 'messages_submit');
  123. } else {
  124. $messages = NULL;
  125. }
  126. ############################### TASKS AND TICKET WATCHES ###############################
  127. $today = date('Y-m-d');
  128. $taskdata = cachetasks(NULL, $today, NULL, NULL, NULL, NULL, NULL, NULL);
  129. $task_count = 0; $tickwatch_count = 0; $task_more = 0; $tickwatch_more = 0; $today_ts = strtotime($today);
  130. if (is_array($taskdata)) {
  131. foreach ($taskdata AS $key2 => $val2) {
  132. foreach ($val2 AS $key => $val) {
  133. if (!$val[5]) {
  134. $origdate = $val[3];
  135. $val[3] = our_date(strtotime($val[3]), NULL, 'M j');
  136. if ($val[7]) { // If a ticket watch
  137. if (strlen($val[1]) > 15) {
  138. $val[1] = substr($val[1], 0, 40) . '...';
  139. }
  140. if ($today_ts > strtotime($origdate)) {
  141. $od_watches["../tickets/ticketview.php?id=$val[0]"] = "$val[1] [$val[3]]";
  142. $odtickwatch_count++;
  143. } else {
  144. $watches["../tickets/ticketview.php?id=$val[0]"] = "$val[1] [$val[3]]";
  145. $tickwatch_count++;
  146. }
  147. } else { // If a calendar task
  148. if (strlen($val[1]) > 15) {
  149. $val[1] = substr($val[1], 0, 40) . '...';
  150. }
  151. if ($today_ts > strtotime($origdate)) {
  152. if ($val[6]) {
  153. $od_tasks["../calendar/viewtask.php?id=$val[0]&date=$val[3]"] = "$val[1] [$val[3]]";
  154. } else {
  155. $od_tasks["../calendar/viewtask.php?id=$val[0]"] = "$val[1] [$val[3]]";
  156. }
  157. $odtask_count++;
  158. } else {
  159. if ($val[6]) {
  160. $tasks["../calendar/viewtask.php?id=$val[0]&date=$val[3]"] = "$val[1] [$val[3]]";
  161. } else {
  162. $tasks["../calendar/viewtask.php?id=$val[0]"] = "$val[1] [$val[3]]";
  163. }
  164. $task_count++;
  165. }
  166. }
  167. }
  168. }
  169. }
  170. }
  171. if (!$tickwatch_count) {
  172. $watches = '&nbsp;&nbsp;<I>None</I><BR>';
  173. } else {
  174. $watches = form_select('watches', $watches, NULL, NULL, NULL, NULL, NULL, "onChange="quick_jump(watches)" style='width:280px'")
  175. . form_submit('Go', 'watches_submit');
  176. }
  177. if (!$odtickwatch_count) {
  178. $od_watches = '&nbsp;&nbsp;<I>None</I><BR>';
  179. } else {
  180. $od_watches = form_select('odwatches', $od_watches, NULL, NULL, NULL, NULL, NULL, "onChange="quick_jump(odwatches)" style='width:280px'")
  181. . form_submit('Go', 'odwatches_submit');
  182. }
  183. if (!$task_count) {
  184. $tasks = '&nbsp;&nbsp;<I>None</I><BR>';
  185. } else {
  186. $tasks = form_select('tasks', $tasks, NULL, NULL, NULL, NULL, NULL, "onChange="quick_jump(tasks)" style='width:280px'")
  187. . form_submit('Go', 'tasks_submit');
  188. }
  189. if (!$odtask_count) {
  190. $od_tasks = '&nbsp;&nbsp;<I>None</I><BR>';
  191. } else {
  192. $od_tasks = form_select('odtasks', $od_tasks, NULL, NULL, NULL, NULL, NULL, "onChange="quick_jump(odtasks)" style='width:280px'")
  193. . form_submit('Go', 'odtasks_submit');
  194. }
  195. ############################### FAQ ARTICLES/COMMENTS AWAITING VALIDATION ###############################
  196. $result = $db->query_return("
  197. SELECT COUNT(*) AS total
  198. FROM faq_articles 
  199. WHERE to_validate 
  200. ");
  201. $faq_count = $result['total'];
  202. $result = $db->query_return("
  203. SELECT COUNT(*) AS total
  204. FROM faq_comments
  205. WHERE new
  206. ");
  207. $faq_comment_count = $result['total'];
  208. ############################### USERS AWAITING VALIDATION ###############################
  209. if ($user[p_approve_new_registrations]) {
  210. $validations = $db->query_return('SELECT COUNT(*) AS total FROM user WHERE awaiting_manual_validation AND !awaiting_validation');
  211. $validations = $validations['total'];
  212. }
  213. ############################### GET SAVED SEARCHES ###############################
  214. $db->query("SELECT id, save_name FROM tech_ticket_search WHERE save_type = 'search' AND techid = '$user[id]' ORDER BY save_name");
  215. while ($saves = $db->row_array()) {
  216. $saved_searches["../tickets/ticketsearch.php?saved_search=$saves[id]"] = $saves['save_name'];
  217. }
  218. if (is_array($saved_searches)) {
  219. $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');
  220. } else {
  221. $savedsearches = 'No searches defined (<a href="./../tickets/ticketsearch.php?searchtype=advanced">create new search</a>)';
  222. }
  223. ############################### DISPLAY EVERYTHING ###############################
  224. echo "<table width="100%" CELLPADDING="10" BORDER="0"><tr><td width="50%" valign="top">nn";
  225. echo "<FORM NAME="jumps" ID="jumps" ACTION="go.php" METHOD="POST">";
  226. $db->query("SELECT tech_news.*, tech.username
  227. FROM tech_news 
  228. LEFT JOIN tech ON (tech_news.techid = tech.id)
  229. ORDER BY date
  230. LIMIT 0,5
  231. ");
  232. $news_table = "<table>";
  233. while ($result = $db->row_array()) {
  234. $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>";
  235. }
  236. $news_table .= "</tr></table>";
  237. fancy_table('100%', "Tech News", $news_table);
  238. $tickets_table = "
  239. <TABLE BORDER="0" CELLPADDING="3" CELLPADDING="0">
  240. <TR VALIGN="TOP">
  241. <TD>";
  242. if ($max_tickets_reached) {
  243. $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 />";
  244. }
  245. $tickets_table .= "<IMG SRC="../../images/tech/bul080.gif" BORDER="0">&nbsp;Your Tickets ($own_total)<BR>$own_tickets</TD></TR>";
  246. if ($user['p_tech_view']) {
  247. $tickets_table .= "</TD><TR><TD COLSPAN="2"><IMG SRC="../../images/tech/bul080.gif" BORDER="0">&nbsp;Others' Tickets ($other_total)<BR>
  248. $other_tickets";
  249. }
  250. $tickets_table .= "<TR><TD><IMG SRC="../../images/tech/bul080.gif" BORDER="0">&nbsp;New (Unowned) Tickets ($new_total)<BR>$new_tickets";
  251. $tickets_table .= "</TD>
  252. </TR></TABLE>n";
  253. fancy_table('100%', "Tickets Awaiting a Response", $tickets_table);
  254. $messages_table = "
  255. <TABLE BORDER="0" CELLPADDING="3" CELLPADDING="0">
  256. <TR VALIGN="TOP">
  257. <TD><IMG SRC="../../images/tech/bul080.gif" BORDER="0">&nbsp;$message_total New Message(s)<BR>$messages</TD></TR></TABLE>";
  258. fancy_table('100%', "New Private Messages", $messages_table);
  259. $faqs_table = "
  260. <TABLE BORDER="0" CELLPADDING="3" CELLPADDING="0">
  261. <TR VALIGN="TOP">
  262. <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>";
  263. fancy_table('100%', "FAQ Articles and Comments", $faqs_table);
  264. $savedsearches_table = "
  265. <TABLE BORDER="0" CELLPADDING="3" CELLPADDING="0">
  266. <TR VALIGN="TOP">
  267. <TD><IMG SRC="../../images/tech/bul080.gif" BORDER="0">&nbsp; $savedsearches<BR></TD></TR></TABLE>";
  268. fancy_table('100%', "Your Saved Search Queries", $savedsearches_table);
  269. if ($user[p_approve_new_registrations]) {
  270. $validations_table = "<TABLE BORDER="0" CELLPADDING="3" CELLPADDING="0">
  271. <TR VALIGN="TOP">
  272. <TD><A HREF="../users/index.php"><IMG SRC="../../images/tech/bul080.gif" BORDER="0">&nbsp;$validations new user(s)</A></TR></TABLE>";
  273. fancy_table('100%', "New Users", $validations_table);
  274. }
  275. echo "</TD><TD WIDTH="50%">";
  276. $tasks_table = "
  277. <TABLE BORDER="0" CELLPADDING="3" CELLPADDING="0">
  278. <TR VALIGN="TOP"><TD><IMG SRC="../../images/tech/bul080.gif" BORDER="0">&nbsp;To Do Task(s)<BR>$tasks</TD></TR>" . 
  279. iff($odtask_count, "<TR><TD><IMG SRC="../../images/tech/bul080.gif" BORDER="0">&nbsp;Overdue Task(s)<BR>$od_tasks</td></tr>") .
  280. "<tr><td><IMG SRC="../../images/tech/bul080.gif" BORDER="0">&nbsp;Tickets to Visit Today<BR>$watches</TD></tr>" .
  281. iff($odtickwatch_count, "<tr><td><IMG SRC="../../images/tech/bul080.gif" BORDER="0">&nbsp;Overdue Ticket Reminders<BR>$od_watches</td></tr>") .
  282. "</table>";
  283. fancy_table('100%', "Your Tasks", $tasks_table);
  284. fancy_table('100%', "Your Calendar", "<br /><center>" . make_month($month, $year) . "</center>");
  285. $links_table = "<table>";
  286. if ($user['p_create_users']) {
  287. $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>";
  288. }
  289. $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>";
  290. $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>";
  291. if ($user['p_add_k']) {
  292. $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>";
  293. }
  294. $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>";
  295. $links_table .= "</table>";
  296. echo "</FORM>";
  297. echo "<FORM NAME="form" ID="form" ACTION="quicksearch.php" METHOD="POST">";
  298. echo "<TABLE BORDER="0" CELLPADDING="0" CELLPADDING="0">
  299. <TR VALIGN="TOP">
  300. <TD width="50%">";
  301. fancy_table('100%', 'Quick Links', $links_table);
  302. $search_table .= "
  303. <table>
  304. <tr><td><img src="../../images/tech/bul084.gif" border="0">&nbsp;&nbsp;Users</td></tr>
  305. <tr><td>" . form_input('user_search', 'username / email', 30, '', '', "onfocus="this.value='';this.form.ticket_search.value='';"") 
  306. . "</td></tr><tr><td><img src="../../images/tech/bul084.gif" border="0">&nbsp;&nbsp;Tickets</td></tr><tr><td>"
  307. . form_input('ticket_search', 'id / ref', 30, '', '', "onfocus="this.value='';this.form.user_search.value='';"")
  308. . "<CENTER>" . form_submit('Search', 'search') . "</CENTER></td></tr></table>";
  309. echo "</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td width="50%">";
  310. fancy_table('100%', 'Quick Search', $search_table);
  311. echo "</FORM></td></tr></table>n";
  312. echo "</td></tr></table>n";
  313. ?>
  314. <SCRIPT LANGUAGE="JavaScript">
  315. function quick_jump(f){
  316. var opt = f.selectedIndex;
  317. var url = f.options[opt].value;
  318. if (url != 0) {
  319. self.document.location = url;
  320. }
  321. return true;
  322. }
  323. </SCRIPT>
  324. <?php
  325. tech_footer();
  326. ?>