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

电子政务应用

开发平台:

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: pms.php,v $
  15. // | $Date: 2004/02/10 01:34:30 $
  16. // | $Revision: 1.20 $
  17. // +-------------------------------------------------------------+
  18. // | File Details:
  19. // | - Private message viewer
  20. // +-------------------------------------------------------------+
  21. error_reporting(E_ALL ^ E_NOTICE);
  22. include "./../global.php";
  23. tech_nav('teamwork');
  24. // default do
  25. $_REQUEST['do'] = trim($_REQUEST['do']);
  26. if (!isset($_REQUEST['do']) or $_REQUEST['do'] == "") {
  27. $_REQUEST['do'] = "view";
  28. }
  29. // globalise variables
  30. $global = array (
  31. array('id') // ticketid
  32. );
  33. rg($global);
  34. ############################### ACTIONS ###############################
  35. if ($_REQUEST['do'] == "actions") {
  36. if (is_array($_REQUEST['doaction'])) {
  37. foreach ($_REQUEST['doaction'] AS $key => $var) {
  38. if ($var = 1) {
  39. if ($_REQUEST['type'] == "delete") {
  40. $db->query("DELETE FROM pm_relations WHERE pmid = '$key' AND techid = '$user[id]'");
  41. // check if we need to delete the source
  42. $total = $db->query_return("SELECT COUNT(*) AS total FROM pm_relations WHERE pmid = '$key'");
  43. if ($total[total] < 1) {
  44. $db->query("DELETE FROM pm_source WHERE id = '$key'");
  45. }
  46. } elseif ($_REQUEST['type'] == "markread") {
  47. $db->query("UPDATE pm_relations SET is_read = 1 WHERE pmid = '$key' AND techid = '$user[id]'");
  48. } elseif ($_REQUEST['type'] == "markunread") {
  49. $db->query("UPDATE pm_relations SET is_read = 0 WHERE pmid = '$key' AND techid = '$user[id]'");
  50. }
  51. }
  52. }
  53. }
  54. $_REQUEST['do'] = "view";
  55. }
  56. ############################### READ ###############################
  57. if ($_REQUEST['do'] == "read") {
  58. $pm = $db->query_return("SELECT pm_source.*, pm_relations.is_read, tech.username FROM pm_relations
  59. LEFT JOIN pm_source ON (pm_source.id = pm_relations.pmid)
  60. LEFT JOIN tech ON (pm_source.fromid = tech.id)
  61. WHERE pm_relations.techid = '$user[id]' AND pm_relations.pmid = '$id'
  62. ");
  63. // update read status
  64. if (!$pm[is_read]) {
  65. $db->query("UPDATE pm_relations SET is_read = '1' WHERE pmid = '$id' AND techid = '$user[id]'");
  66. }
  67. // display pm
  68. $table[] = table_midheader('The Private message');
  69. $table[] = array('<b>Message From</b>', $pm[username]);
  70. $table[] = array('<b>Subject</b>', $pm[title]);
  71. $table[] = array('<b>Date Sent</b>', our_date($pm[timestamp]));
  72. $table[] = array('<b>Message</b>', $pm[message]);
  73. $table[] = table_midheader('Reply to this private message');
  74. $table[] = array(table_thelp('<b>Message Title</b>', 'Private Messages', 'Send: Message Title'), form_input('title', "Re: " . $pm[title]));
  75. $table[] = array(table_thelp('<b>Send To</b>', 'Private Messages', 'Send: Send To'), "<I>" . $pm[username] . "</I>");
  76. $table[] = array(table_thelp('<b>Message</b>', 'Private Messages', 'Send: Message'), form_textarea('message', 80, 10, $_REQUEST[message]));
  77. table_header('Your private message', 'pms.php', array('do' => 'add2', 'to[]' => $pm[fromid]));
  78. table_content('', $table, '', '', iff($error, '<b><font color="red">You have not completed all the necessary fields</font></b><br /><br />'));
  79. table_footer('Send Message');
  80. }
  81. ############################### SEND (2) ###############################
  82. if ($_REQUEST['do'] == "add2") {
  83. if ($_REQUEST[title] AND $_REQUEST[message] AND (is_array($_REQUEST[to]))) {
  84. $checks = xss_check(array($_REQUEST['message'], $_REQUEST['title']), 'tech');
  85. $db->query("INSERT INTO pm_source SET
  86. message = '" . mysql_escape_string($checks[0]) . "',
  87. title = '" . mysql_escape_string($checks[1]) . "',
  88. fromid = '$user[id]',
  89. timestamp = '" . mktime() . "'
  90. ");
  91. $title = $_REQUEST['title'];
  92. $message = wordwrap($_REQUEST['message']);
  93. $sender = $user['username'];
  94. $id = $db->last_id();
  95. $emails = $db->query_return_array_id("SELECT id, email, username, email_pm FROM tech ORDER BY id");
  96. foreach ($_REQUEST['to'] AS $key => $var) {
  97. $db->query("INSERT INTO pm_relations SET
  98. techid = '" . intval($var) . "',
  99. pmid = '$id'
  100. ");
  101. if ($emails[$var]['email_pm']) {
  102. $username = $emails[$var]['username'];
  103. eval(makeemaileval('body', 'TECHBODY_newpm', $subject));
  104. dp_mail($emails[$var]['email'], $subject, $body);
  105. }
  106. }
  107. jump('pms.php', 'Your private message has been sent');
  108. } else {
  109. $_REQUEST['do'] = "send";
  110. $error = 1;
  111. }
  112. }
  113. ############################### SEND FORM ###############################
  114. if ($_REQUEST['do'] == "send") {
  115. $db->query("SELECT username, id FROM tech WHERE id != '$user[id]'");
  116. while ($result = $db->row_array()) {
  117. $tech[$result[id]] = $result[username];
  118. }
  119. $table[] = array(table_thelp('<b>Message Title</b>', 'Private Messages', 'Send: Message Title'), form_input('title', $_REQUEST[title]));
  120. $table[] = array(table_thelp('<b>Send To</b>', 'Private Messages', 'Send: Send To'), form_select('to', $tech, '', $toid, '', '', 5));
  121. $table[] = array(table_thelp('<b>Message</b>', 'Private Messages', 'Send: Message'), form_textarea('message', 80, 10, $_REQUEST[message]));
  122. table_header('Send new private message', 'pms.php', array('do' => 'add2'));
  123. table_content('', $table, '', '', iff($error, '<b><font color="red">You have not completed all the necessary fields</font></b><br /><br />'));
  124. table_footer('Send Message');
  125. }
  126. ############################### VIEW ###############################
  127. if ($_REQUEST['do'] == "view") { // read or unread
  128. $db->query("SELECT pm_source.*, tech.username FROM pm_relations
  129. LEFT JOIN pm_source ON (pm_source.id = pm_relations.pmid)
  130. LEFT JOIN tech ON (pm_source.fromid = tech.id)
  131. WHERE pm_relations.techid = '$user[id]' AND " . iff($_REQUEST[is_read], 'is_read', '!is_read') . "
  132. ORDER BY pm_source.timestamp
  133. ");
  134. while ($pm = $db->row_array()) {
  135. $table[] = array(form_checkbox_single($pm[id], 1, '', 'doaction'), $pm[title], $pm[username], our_date($pm[timestamp]), "<a href="pms.php?do=read&id=$pm[id]">view</a>");
  136. }
  137. if ($_REQUEST[is_read]) {
  138. $array_type = array('delete' => 'Delete', 'markunread' => 'Mark Unread');
  139. } else {
  140. $array_type = array('delete' => 'Delete', 'markread' => 'Mark Read');
  141. }
  142. $width = array('20');
  143. $cols = array('<input type="checkbox" name="allbox" onclick="checkall(this.form);" />', 'Title', 'From', 'Date Sent', 'View');
  144. table_header(iff($_REQUEST[is_read], "Read Private Messages", "Unread Private Messages"), 'pms.php', array('do' => 'actions', 'is_read' => $_REQUEST[is_read]));
  145. table_content($cols, $table, '', '', '', '', $width);
  146. table_footer('Submit', 'Left', form_select('type', $array_type));
  147. echo "<br /><br />" . thelp('Private Messages', 'Viewing') . "<br /><br />";
  148. echo iff($_REQUEST[is_read], "<a href="pms.php?do=view&is_read=0">View Unread PMs</a>", "<a href="pms.php?do=view&is_read=1">View Read PMs</a>");
  149. }
  150. tech_footer();
  151. ?>