国内流行的内容管理系统(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.

227 lines
8.0KB

  1. <?php
  2. /**
  3. * 会员短消息
  4. *
  5. * @version $Id: pm.php 1 8:38 2010年7月9日Z tianya $
  6. * @package DedeCMS.Member
  7. * @copyright Copyright (c) 2007 - 2019, DesDev, Inc.
  8. * @license http://help.dedecms.com/usersguide/license.html
  9. * @link http://www.dedecms.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. {
  18. ShowMsg('由于系统开启了精简版会员空间,你不能向其它会员发短信息,不过你可以向他留言!','-1');
  19. exit();
  20. }
  21. #api{{
  22. if(defined('UC_API') && @include_once DEDEROOT.'/uc_client/client.php')
  23. {
  24. if($data = uc_get_user($cfg_ml->M_LoginID)) uc_pm_location($data[0]);
  25. }
  26. #/aip}}
  27. if(!isset($dopost))
  28. {
  29. $dopost = '';
  30. }
  31. //检查用户是否被禁言
  32. CheckNotAllow();
  33. $state=(empty($state))? "" : $state;
  34. /*--------------------
  35. function __send(){ }
  36. ----------------------*/
  37. if($dopost=='send')
  38. {
  39. /** 好友记录 **/
  40. $sql = "SELECT * FROM `#@__member_friends` WHERE mid='{$cfg_ml->M_ID}' AND ftype!='-1' ORDER BY addtime DESC LIMIT 20";
  41. $friends = array();
  42. $dsql->SetQuery($sql);
  43. $dsql->Execute();
  44. while ($row = $dsql->GetArray()) {
  45. $friends[] = $row;
  46. }
  47. include_once(dirname(__FILE__).'/templets/pm-send.htm');
  48. exit();
  49. }
  50. /*-----------------------
  51. function __read(){ }
  52. ----------------------*/
  53. else if($dopost=='read')
  54. {
  55. $sql = "SELECT * FROM `#@__member_friends` WHERE mid='{$cfg_ml->M_ID}' AND ftype!='-1' ORDER BY addtime DESC LIMIT 20";
  56. $friends = array();
  57. $dsql->SetQuery($sql);
  58. $dsql->Execute();
  59. while ($row = $dsql->GetArray()) {
  60. $friends[] = $row;
  61. }
  62. $id = intval($id);
  63. $row = $dsql->GetOne("SELECT * FROM `#@__member_pms` WHERE id='$id' AND (fromid='{$cfg_ml->M_ID}' OR toid='{$cfg_ml->M_ID}')");
  64. if(!is_array($row))
  65. {
  66. ShowMsg('对不起,你指定的消息不存在或你没权限查看!','-1');
  67. exit();
  68. }
  69. $dsql->ExecuteNoneQuery("UPDATE `#@__member_pms` SET hasview=1 WHERE id='$id' AND folder='inbox' AND toid='{$cfg_ml->M_ID}'");
  70. $dsql->ExecuteNoneQuery("UPDATE `#@__member_pms` SET hasview=1 WHERE folder='outbox' AND toid='{$cfg_ml->M_ID}'");
  71. include_once(dirname(__FILE__).'/templets/pm-read.htm');
  72. exit();
  73. }
  74. /*-----------------------
  75. function __savesend(){ }
  76. ----------------------*/
  77. else if($dopost=='savesend')
  78. {
  79. $svali = GetCkVdValue();
  80. if(preg_match("/5/",$safe_gdopen)){
  81. if(strtolower($vdcode)!=$svali || $svali=='')
  82. {
  83. ResetVdValue();
  84. ShowMsg('验证码错误!', '-1');
  85. exit();
  86. }
  87. }
  88. $faqkey = isset($faqkey) && is_numeric($faqkey) ? $faqkey : 0;
  89. if($safe_faq_msg == 1)
  90. {
  91. if($safefaqs[$faqkey]['answer'] != $safeanswer || $safeanswer=='')
  92. {
  93. ShowMsg('验证问题答案错误', '-1');
  94. exit();
  95. }
  96. }
  97. if($subject=='')
  98. {
  99. ShowMsg("请填写信息标题!","-1");
  100. exit();
  101. }
  102. $msg = CheckUserID($msgtoid,"用户名",false);
  103. if($msg!='ok')
  104. {
  105. ShowMsg($msg,"-1");
  106. exit();
  107. }
  108. $row = $dsql->GetOne("SELECT * FROM `#@__member` WHERE userid LIKE '$msgtoid' ");
  109. if(!is_array($row))
  110. {
  111. ShowMsg("你指定的用户不存在,不能发送信息!","-1");
  112. exit();
  113. }
  114. $subject = cn_substrR(HtmlReplace($subject,1),60);
  115. $message = cn_substrR(HtmlReplace($message,0),1024);
  116. $sendtime = $writetime = time();
  117. //发给收件人(收件人可管理)
  118. $inquery1 = "INSERT INTO `#@__member_pms` (`floginid`,`fromid`,`toid`,`tologinid`,`folder`,`subject`,`sendtime`,`writetime`,`hasview`,`isadmin`,`message`)
  119. VALUES ('{$cfg_ml->M_LoginID}','{$cfg_ml->M_ID}','{$row['mid']}','{$row['userid']}','inbox','$subject','$sendtime','$writetime','0','0','$message'); ";
  120. //保留到自己的发件箱(自己可管理)
  121. $inquery2 = "INSERT INTO `#@__member_pms` (`floginid`,`fromid`,`toid`,`tologinid`,`folder`,`subject`,`sendtime`,`writetime`,`hasview`,`isadmin`,`message`)
  122. VALUES ('{$cfg_ml->M_LoginID}','{$cfg_ml->M_ID}','{$row['mid']}','{$row['userid']}','outbox','$subject','$sendtime','$writetime','0','0','$message'); ";
  123. $dsql->ExecuteNoneQuery($inquery1);
  124. $dsql->ExecuteNoneQuery($inquery2);
  125. ShowMsg("成功发送一条信息!","pm.php?dopost=outbox");
  126. exit();
  127. }
  128. /*-----------------------
  129. function __del(){ }
  130. ----------------------*/
  131. else if($dopost=='del')
  132. {
  133. $ids = preg_replace("#[^0-9,]#", "", $ids);
  134. if($folder=='inbox')
  135. {
  136. $boxsql="SELECT * FROM `#@__member_pms` WHERE id IN($ids) AND folder LIKE 'inbox' AND toid='{$cfg_ml->M_ID}'";
  137. $dsql->SetQuery($boxsql);
  138. $dsql->Execute();
  139. $query='';
  140. while($row = $dsql->GetArray())
  141. {
  142. if($row && $row['isadmin']==1)
  143. {
  144. $query = "Update `#@__member_pms` set writetime='0' WHERE id='{$row['id']}' AND folder='inbox' AND toid='{$cfg_ml->M_ID}' AND isadmin='1';";
  145. $dsql->ExecuteNoneQuery($query);
  146. }
  147. else
  148. {
  149. $query = "DELETE FROM `#@__member_pms` WHERE id in($ids) AND toid='{$cfg_ml->M_ID}' AND folder LIKE 'inbox'";
  150. }
  151. }
  152. }
  153. else if($folder=='outbox')
  154. {
  155. $query = "Delete From `#@__member_pms` WHERE id in($ids) AND fromid='{$cfg_ml->M_ID}' AND folder LIKE 'outbox' ";
  156. }
  157. else
  158. {
  159. $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')";
  160. }
  161. $dsql->ExecuteNoneQuery($query);
  162. ShowMsg("成功删除指定的消息!","pm.php?folder=".$folder);
  163. exit();
  164. }
  165. /*-----------------------
  166. function __man(){ }
  167. ----------------------*/
  168. else
  169. {
  170. if(!isset($folder))
  171. {
  172. $folder = 'inbox';
  173. }
  174. require_once(DEDEINC."/datalistcp.class.php");
  175. $wsql = '';
  176. if($folder=='outbox')
  177. {
  178. $wsql = " `fromid`='{$cfg_ml->M_ID}' AND folder LIKE 'outbox' ";
  179. $tname = "发件箱";
  180. }
  181. elseif($folder=='inbox')
  182. {
  183. $query = "SELECT * FROM `#@__member_pms` WHERE folder LIKE 'outbox' AND isadmin='1'";
  184. $dsql->SetQuery($query);
  185. $dsql->Execute();
  186. while($row = $dsql->GetArray())
  187. {
  188. $row2 = $dsql->GetOne("SELECT * FROM `#@__member_pms` WHERE fromid = '$row[id]' AND toid='{$cfg_ml->M_ID}'");
  189. if(!is_array($row2))
  190. {
  191. $row3= "INSERT INTO
  192. `#@__member_pms` (`floginid`,`fromid`,`toid`,`tologinid`,`folder`,`subject`,`sendtime`,`writetime`,`hasview`,`isadmin`,`message`)
  193. VALUES ('admin','{$row['id']}','{$cfg_ml->M_ID}','{$cfg_ml->M_LoginID}','inbox','{$row['subject']}','{$row['sendtime']}','{$row['writetime']}','{$row['hasview']}','{$row['isadmin']}','{$row['message']}')";
  194. $dsql->ExecuteNoneQuery($row3);
  195. }
  196. }
  197. if($state=="1"){
  198. $wsql= " toid='{$cfg_ml->M_ID}' AND folder='inbox' AND writetime!='' and hasview=1";
  199. $tname = "收件箱";
  200. } else if ($state=="-1")
  201. {
  202. $wsql = "toid='{$cfg_ml->M_ID}' AND folder='inbox' AND writetime!='' and hasview=0";
  203. $tname = "收件箱";
  204. } else {
  205. $wsql = " toid='{$cfg_ml->M_ID}' AND folder='inbox' AND writetime!=''";
  206. $tname = "收件箱";
  207. }
  208. }
  209. else
  210. {
  211. $wsql = " `fromid` ='{$cfg_ml->M_ID}' AND folder LIKE 'outbox'";
  212. $tname = "已发信息";
  213. }
  214. $query = "SELECT * FROM `#@__member_pms` WHERE $wsql ORDER BY sendtime DESC";
  215. $dlist = new DataListCP();
  216. $dlist->pageSize = 20;
  217. $dlist->SetParameter("dopost",$dopost);
  218. $dlist->SetTemplate(DEDEMEMBER.'/templets/pm-main.htm');
  219. $dlist->SetSource($query);
  220. $dlist->Display();
  221. }