PageRenderTime 26ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/b2b/core/lib/uc_client/control/pm.php

http://phpfor.googlecode.com/
PHP | 146 lines | 124 code | 16 blank | 6 comment | 25 complexity | 0d89684752c1d7ba7b9cfce66379cda7 MD5 | raw file
  1. <?php
  2. /*
  3. [UCenter] (C)2001-2008 Comsenz Inc.
  4. This is NOT a freeware, use is subject to license terms
  5. $Id: pm.php 12126 2008-01-11 09:40:32Z heyond $
  6. */
  7. !defined('IN_UC') && exit('Access Denied');
  8. class pmcontrol extends base {
  9. function pmcontrol() {
  10. $this->base();
  11. $this->load('user');
  12. $this->load('pm');
  13. }
  14. function oncheck_newpm($arr) {
  15. @extract($arr, EXTR_SKIP);//uid
  16. $this->user['uid'] = intval($uid);
  17. return $_ENV['pm']->check_newpm($this->user['uid']);
  18. }
  19. function onsendpm($arr) {
  20. @extract($arr, EXTR_SKIP);//fromuid, msgto, subject, message, replypmid, isusername
  21. if($fromuid) {
  22. $user = $_ENV['user']->get_user_by_uid($fromuid);
  23. $user = uc_addslashes($user, 1);
  24. if(!$user) {
  25. return 0;
  26. }
  27. $this->user['uid'] = $user['uid'];
  28. $this->user['username'] = $user['username'];
  29. } else {
  30. $this->user['uid'] = 0;
  31. $this->user['username'] = '';
  32. $replypmid = 0;
  33. }
  34. if($replypmid) {
  35. $isusername = 1;
  36. $pms = $_ENV['pm']->get_pm_by_pmid($this->user['uid'], $replypmid);
  37. if($pms[0]['msgfromid'] == $this->user['uid']) {
  38. $user = $_ENV['user']->get_user_by_uid($pms[0]['msgtoid']);
  39. $msgto = $user['username'];
  40. } else {
  41. $msgto = $pms[0]['msgfrom'];
  42. }
  43. }
  44. $msgto = array_unique(explode(',', $msgto));
  45. $isusername && $msgto = $_ENV['user']->name2id($msgto);
  46. $blackls = $_ENV['pm']->get_blackls($this->user['uid'], $msgto);
  47. $lastpmid = 0;
  48. foreach($msgto as $uid) {
  49. if(!$fromuid || !in_array('{ALL}', $blackls[$uid])) {
  50. $blackls[$uid] = $_ENV['user']->name2id($blackls[$uid]);
  51. if(!$fromuid || isset($blackls[$uid]) && !in_array($this->user['uid'], $blackls[$uid])) {
  52. $lastpmid = $_ENV['pm']->sendpm($subject, $message, $this->user, $uid, $replypmid);
  53. }
  54. }
  55. }
  56. return $lastpmid;
  57. }
  58. function ondelete($arr) {
  59. @extract($arr, EXTR_SKIP);//$uid, $folder, $pmids
  60. $this->user['uid'] = intval($uid);
  61. return $_ENV['pm']->deletepm($this->user['uid'], $folder, $pmids);
  62. }
  63. function onignore($arr) {
  64. @extract($arr, EXTR_SKIP);//$uid
  65. $this->user['uid'] = intval($uid);
  66. $_ENV['pm']->set_ignore($this->user['uid']);
  67. }
  68. function onls($arr) {
  69. @extract($arr, EXTR_SKIP);//uid, page, pagesize, folder, filter, msglen
  70. $folder = in_array($folder, array('newbox', 'inbox', 'outbox')) ? $folder : 'inbox';
  71. $filter = $filter ? (in_array($filter, array('newpm', 'systempm', 'announcepm')) ? $filter : '') : '';
  72. $this->user['uid'] = intval($uid);
  73. $pmnum = $_ENV['pm']->get_num($this->user['uid'], $folder, $filter);
  74. if($pagesize > 0) {
  75. $pms = $_ENV['pm']->get_pm_list($this->user['uid'], $pmnum, $folder, $filter, $this->page_get_start($page, $pagesize, $pmnum), $pagesize);
  76. if(is_array($pms) && !empty($pms)) {
  77. foreach($pms as $key => $pm) {
  78. if($msglen) {
  79. $pms[$key]['message']{0} == "\t" && $pms[$key]['message'] = substr($pms[$key]['message'], 1);
  80. $pms[$key]['message'] = $_ENV['pm']->removecode($pms[$key]['message'], $msglen);
  81. } else {
  82. unset($pms[$key]['message']);
  83. }
  84. unset($pms[$key]['folder']);
  85. }
  86. }
  87. $result['data'] = $pms;
  88. }
  89. $result['count'] = $pmnum;
  90. return $result;
  91. }
  92. function onviewnode($arr) {
  93. @extract($arr, EXTR_SKIP);//uid, pmid, type
  94. $this->user['uid'] = intval($uid);
  95. $pmid = $_ENV['pm']->pmintval($pmid);
  96. $pm = $_ENV['pm']->get_pmnode_by_pmid($this->user['uid'], $pmid, $type);
  97. if($pm) {
  98. require_once UC_ROOT.'lib/uccode.class.php';
  99. $this->uccode = new uccode();
  100. $pm['message'] = $this->uccode->complie($pm['message']);
  101. return $pm;
  102. }
  103. }
  104. function onview($arr) {
  105. @extract($arr, EXTR_SKIP);//uid, pmid
  106. $this->user['uid'] = intval($uid);
  107. $pmid = $_ENV['pm']->pmintval($pmid);
  108. $pms = $_ENV['pm']->get_pm_by_pmid($this->user['uid'], $pmid);
  109. require_once UC_ROOT.'lib/uccode.class.php';
  110. $this->uccode = new uccode();
  111. foreach($pms as $key => $pm) {
  112. $pms[$key]['message'] = $this->uccode->complie($pms[$key]['message']);
  113. !$status && $status = $pm['msgtoid'] && $pm['new'];
  114. }
  115. $status && $_ENV['pm']->set_pm_status($this->user['uid'], $pmid);
  116. return $pms;
  117. }
  118. function onblackls_get($arr) {
  119. @extract($arr, EXTR_SKIP);//uid
  120. $this->user['uid'] = intval($uid);
  121. return $_ENV['pm']->get_blackls($this->user['uid']);
  122. }
  123. function onblackls_set($arr) {
  124. @extract($arr, EXTR_SKIP);//uid, blackls
  125. $this->user['uid'] = intval($uid);
  126. return $_ENV['pm']->set_blackls($this->user['uid'], $blackls);
  127. }
  128. }
  129. ?>