国内流行的内容管理系统(CMS)多端全媒体解决方案 https://www.dedebiz.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

120 lines
4.3KB

  1. <?php
  2. /**
  3. * 会员短消息
  4. *
  5. * @version $id:pm.php 8:38 2010年7月9日 tianya $
  6. * @package DedeBIZ.User
  7. * @copyright Copyright (c) 2022 DedeBIZ.COM
  8. * @license https://www.dedebiz.com/license
  9. * @link https://www.dedebiz.com
  10. */
  11. require_once(dirname(__FILE__)."/config.php");
  12. CheckRank(0, 0);
  13. $menutype = 'mydede';
  14. $menutype_son = 'pm';
  15. $id = isset($id) ? intval($id) : 0;
  16. if ($cfg_mb_lit == 'Y') {
  17. ShowMsg('由于系统开启了会员空间精简版,您不能向其它会员发短信息,不过您可以向他留言', '-1');
  18. exit();
  19. }
  20. if (!isset($dopost)) {
  21. $dopost = '';
  22. }
  23. //检查用户是否被禁言
  24. CheckNotAllow();
  25. $state = empty($state) ? 0 : intval($state);
  26. if ($dopost == 'read') {
  27. $id = intval($id);
  28. $row = $dsql->GetOne("SELECT * FROM `#@__member_pms` WHERE id='$id' AND (fromid='{$cfg_ml->M_ID}' OR toid='{$cfg_ml->M_ID}')");
  29. if (!is_array($row)) {
  30. $result = array(
  31. "code" => -1,
  32. "data" => null,
  33. "msg" => "您指定的消息不存在或您没权限查看",
  34. );
  35. echo json_encode($result);
  36. exit();
  37. }
  38. $dsql->ExecuteNoneQuery("UPDATE `#@__member_pms` SET hasview=1 WHERE id='$id' AND folder='inbox' AND toid='{$cfg_ml->M_ID}'");
  39. $dsql->ExecuteNoneQuery("UPDATE `#@__member_pms` SET hasview=1 WHERE folder='outbox' AND toid='{$cfg_ml->M_ID}'");
  40. $result = array(
  41. "code" => 200,
  42. "data" => array(
  43. "subject" => $row['subject'],
  44. "message" => $row['message'],
  45. "sendtime" => MyDate("Y-m-d H:i", $row['sendtime']),
  46. ),
  47. "msg" => "",
  48. );
  49. echo json_encode($result);
  50. exit();
  51. } else if($dopost == 'remove'){
  52. $ids = preg_replace("#[^0-9,]#", "", $ids);
  53. if($folder==='inbox')
  54. {
  55. $boxsql="SELECT * FROM `#@__member_pms` WHERE id IN($ids) AND folder LIKE 'inbox' AND toid='{$cfg_ml->M_ID}'";
  56. $dsql->SetQuery($boxsql);
  57. $dsql->Execute();
  58. $query='';
  59. while($row = $dsql->GetArray())
  60. {
  61. if($row && $row['isadmin']==1)
  62. {
  63. $query = "UPDATE `#@__member_pms` SET writetime='0' WHERE id='{$row['id']}' AND folder='inbox' AND toid='{$cfg_ml->M_ID}' AND isadmin='1';";
  64. $dsql->ExecuteNoneQuery($query);
  65. }
  66. else
  67. {
  68. $query = "DELETE FROM `#@__member_pms` WHERE id in($ids) AND toid='{$cfg_ml->M_ID}' AND folder LIKE 'inbox'";
  69. }
  70. }
  71. }
  72. else if($folder==='outbox')
  73. {
  74. $query = "DELETE FROM `#@__member_pms` WHERE id in($ids) AND fromid='{$cfg_ml->M_ID}' AND folder LIKE 'outbox' ";
  75. }
  76. else
  77. {
  78. $query = "DELETE FROM `#@__member_pms` WHERE id in($ids) AND fromid='{$cfg_ml->M_ID}' Or toid='{$cfg_ml->M_ID}' AND folder LIKE 'outbox' Or (folder LIKE 'inbox' AND hasview='0')";
  79. }
  80. $dsql->ExecuteNoneQuery($query);
  81. $result = array(
  82. "code" => 200,
  83. "data" => "success",
  84. "msg" => "",
  85. );
  86. echo json_encode($result);
  87. exit;
  88. } else {
  89. if (!isset($folder)) {
  90. $folder = 'inbox';
  91. }
  92. require_once(DEDEINC."/datalistcp.class.php");
  93. $wsql = '';
  94. if ($folder == 'outbox') {
  95. $wsql = " `fromid`='{$cfg_ml->M_ID}' AND folder LIKE 'outbox' ";
  96. $tname = "发件箱";
  97. } elseif ($folder == 'inbox') {
  98. if ($state === 1) {
  99. $wsql = " toid='{$cfg_ml->M_ID}' AND folder='inbox' AND writetime!=0 and hasview=1";
  100. $tname = "收件箱";
  101. } else if ($state === -1) {
  102. $wsql = "toid='{$cfg_ml->M_ID}' AND folder='inbox' AND writetime!=0 and hasview=0";
  103. $tname = "收件箱";
  104. } else {
  105. $wsql = " toid='{$cfg_ml->M_ID}' AND folder='inbox' AND writetime!=0";
  106. $tname = "收件箱";
  107. }
  108. } else {
  109. $wsql = " `fromid` ='{$cfg_ml->M_ID}' AND folder LIKE 'outbox'";
  110. $tname = "已发信息";
  111. }
  112. $query = "SELECT * FROM `#@__member_pms` WHERE $wsql ORDER BY sendtime DESC";
  113. $dlist = new DataListCP();
  114. $dlist->pagesize = 10;
  115. $dlist->SetParameter("dopost", $dopost);
  116. $dlist->SetTemplate(DEDEMEMBER.'/templets/pm-main.htm');
  117. $dlist->SetSource($query);
  118. $dlist->Display();
  119. }
  120. ?>