123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373 |
- <?php
- /*
- [UCenter] (C)2001-2099 Comsenz Inc.
- This is NOT a freeware, use is subject to license terms
- $Id: pm.php 1067 2011-03-08 10:06:51Z svn_project_zhangjie $
- */
- !defined('IN_UC') && exit('Access Denied');
- define('PRIVATEPMTHREADLIMIT_ERROR', -1);
- define('PMFLOODCTRL_ERROR', -2);
- define('PMMSGTONOTFRIEND', -3);
- define('PMSENDREGDAYS', -4);
- define('CHATPMTHREADLIMIT_ERROR', -5);
- define('CHATPMMEMBERLIMIT_ERROR', -7);
- class pmcontrol extends base {
- function __construct() {
- $this->pmcontrol();
- }
- function pmcontrol() {
- parent::__construct();
- $this->load('user');
- $this->load('pm');
- }
- function oncheck_newpm() {
- $this->init_input();
- $uid = intval($this->input('uid'));
- $more = intval($this->input('more'));
- if(!$_ENV['pm']->isnewpm($uid) && !$more) {
- return 0;
- }
- $newprvpm = $_ENV['pm']->getpmnum($uid, 1, 1);
- $newchatpm = $_ENV['pm']->getpmnum($uid, 2, 1);
- $newpm = $newprvpm + $newchatpm;
- if($more == 0) {
- return $newpm;
- } elseif($more == 1) {
- return array('newpm' => $newpm, 'newprivatepm' => $newprvpm);
- } elseif($more == 2 || $more == 3) {
- if($more == 2) {
- return array('newpm' => $newpm, 'newprivatepm' => $newprvpm, 'newchatpm' => $newchatpm);
- } else {
- $lastpm = $_ENV['pm']->lastpm($uid);
- require_once UC_ROOT.'lib/uccode.class.php';
- $this->uccode = new uccode();
- $lastpm['lastsummary'] = $this->uccode->complie($lastpm['lastsummary']);
- return array('newpm' => $newpm, 'newprivatepm' => $newprvpm, 'newchatpm' => $newchatpm, 'lastdate' => $lastpm['lastdateline'], 'lastmsgfromid' => $lastpm['lastauthorid'], 'lastmsgfrom' => $lastpm['lastauthorusername'], 'lastmsg' => $lastpm['lastsummary']);
- }
- } elseif($more == 4) {
- return array('newpm' => $newpm, 'newprivatepm' => $newprvpm, 'newchatpm' => $newchatpm);
- } else {
- return 0;
- }
- }
- function onsendpm() {
- $this->init_input();
- $fromuid = $this->input('fromuid');
- $msgto = $this->input('msgto');
- $subject = $this->input('subject');
- $message = $this->input('message');
- $replypmid = $this->input('replypmid');
- $isusername = $this->input('isusername');
- $type = $this->input('type');
- if(!$fromuid) {
- return 0;
- }
- $user = $_ENV['user']->get_user_by_uid($fromuid);
- $user = daddslashes($user, 1);
- if(!$user) {
- return 0;
- }
- $this->user['uid'] = $user['uid'];
- $this->user['username'] = $user['username'];
- if($replypmid) {
- $isusername = 0;
- $plid = $_ENV['pm']->getplidbypmid($replypmid);
- $msgto = $_ENV['pm']->getuidbyplid($plid);
- unset($msgto[$this->user['uid']]);
- } else {
- if(!empty($msgto)) {
- $msgto = array_unique(explode(',', $msgto));
- }
- }
- if($isusername) {
- $msgto = $_ENV['user']->name2id($msgto);
- }
- $countmsgto = count($msgto);
- if($this->settings['pmsendregdays']) {
- if($user['regdate'] > $this->time - $this->settings['pmsendregdays'] * 86400) {
- return PMSENDREGDAYS;
- }
- }
- if($this->settings['chatpmmemberlimit']) {
- if($type == 1 && ($countmsgto > ($this->settings['chatpmmemberlimit'] - 1))) {
- return CHATPMMEMBERLIMIT_ERROR;
- }
- }
- if($this->settings['pmfloodctrl']) {
- if(!$_ENV['pm']->ispminterval($this->user['uid'], $this->settings['pmfloodctrl'])) {
- return PMFLOODCTRL_ERROR;
- }
- }
- if($this->settings['privatepmthreadlimit']) {
- if(!$_ENV['pm']->isprivatepmthreadlimit($this->user['uid'], $this->settings['privatepmthreadlimit'])) {
- return PRIVATEPMTHREADLIMIT_ERROR;
- }
- }
- if($this->settings['chatpmthreadlimit']) {
- if(!$_ENV['pm']->ischatpmthreadlimit($this->user['uid'], $this->settings['chatpmthreadlimit'])) {
- return CHATPMTHREADLIMIT_ERROR;
- }
- }
- $lastpmid = 0;
- if($replypmid) {
- $lastpmid = $_ENV['pm']->replypm($plid, $this->user['uid'], $this->user['username'], $message);
- } else {
- $lastpmid = $_ENV['pm']->sendpm($this->user['uid'], $this->user['username'], $msgto, $subject, $message, $type);
- }
- return $lastpmid;
- }
- function ondelete() {
- $this->init_input();
- $this->user['uid'] = intval($this->input('uid'));
- $pmids = $this->input('pmids');
- if(empty($pmids)) {
- return 0;
- }
- if(is_array($pmids)) {
- $this->apps = $this->cache('apps');
- if($this->apps[$this->app['appid']]['type'] == 'UCHOME') {
- $id = $_ENV['pm']->deletepmbyplids($this->user['uid'], $this->input('pmids'));
- } else {
- $id = $_ENV['pm']->deletepmbypmids($this->user['uid'], $this->input('pmids'));
- }
- } else {
- $id = $_ENV['pm']->deletepmbypmid($this->user['uid'], $this->input('pmids'));
- }
- return $id;
- }
- function ondeletechat() {
- $this->init_input();
- $this->user['uid'] = intval($this->input('uid'));
- $plids = $this->input('plids');
- $type = intval($this->input('type'));
- if($type == 1) {
- return $_ENV['pm']->deletepmbyplids($this->user['uid'], $plids);
- } else {
- return $_ENV['pm']->quitchatpm($this->user['uid'], $plids);
- }
- }
- function ondeleteuser() {
- $this->init_input();
- $this->user['uid'] = intval($this->input('uid'));
- $id = $_ENV['pm']->deletepmbyplids($this->user['uid'], $this->input('touids'), 1);
- return $id;
- }
- function onreadstatus() {
- $this->init_input();
- $this->user['uid'] = intval($this->input('uid'));
- $_ENV['pm']->setpmstatus($this->user['uid'], $this->input('uids'), $this->input('plids'), $this->input('status'));
- }
- function onignore() {
- $this->init_input();
- $this->user['uid'] = intval($this->input('uid'));
- return $_ENV['pm']->set_ignore($this->user['uid']);
- }
- function onls() {
- $this->init_input();
- $pagesize = $this->input('pagesize');
- $filter = $this->input('filter');
- $page = $this->input('page');
- $msglen = $this->input('msglen');
- $this->user['uid'] = intval($this->input('uid'));
- $filter = $filter ? (in_array($filter, array('newpm', 'privatepm')) ? $filter : '') : '';
- if($filter == 'newpm') {
- $type = 0;
- $new = 1;
- /*
- } elseif($filter == 'privatepm') {
- $type = 1;
- $new = 0;
- } elseif($filter == 'chatpm') {
- $type = 2;
- $new = 0;
- */
- } elseif($filter == 'privatepm') {
- $type = 0;
- $new = 0;
- } else {
- return array();
- }
- $pmnum = $_ENV['pm']->getpmnum($this->user['uid'], $type, $new);
- $start = $this->page_get_start($page, $pagesize, $pmnum);
- if($pagesize > 0) {
- $pms = $_ENV['pm']->getpmlist($this->user['uid'], $filter, $start, $pagesize);
- if(is_array($pms) && !empty($pms)) {
- foreach($pms as $key => $pm) {
- if($msglen) {
- $pms[$key]['lastsummary'] = $_ENV['pm']->removecode($pms[$key]['lastsummary'], $msglen);
- } else {
- unset($pms[$key]['lastsummary']);
- }
- }
- }
- $result['data'] = $pms;
- }
- $result['count'] = $pmnum;
- return $result;
- }
- function onview() {
- $this->init_input();
- $this->user['uid'] = intval($this->input('uid'));
- $pmid = $this->input('pmid');
- $touid = $this->input('touid');
- $daterange = $this->input('daterange');
- $page = $this->input('page');
- $pagesize = $this->input('pagesize');
- $isplid = $this->input('isplid');
- $type = $this->input('type');
- $daterange = empty($daterange) ? 1 : $daterange;
- $today = $this->time - ($this->time + $this->settings['timeoffset']) % 86400;
- if($daterange == 1) {
- $starttime = $today;
- } elseif($daterange == 2) {
- $starttime = $today - 86400;
- } elseif($daterange == 3) {
- $starttime = $today - 172800;
- } elseif($daterange == 4) {
- $starttime = $today - 604800;
- } elseif($daterange == 5) {
- $starttime = 0;
- }
- $endtime = $this->time;
- if(!$isplid) {
- $plid = $_ENV['pm']->getplidbytouid($this->user['uid'], $touid);
- } else {
- $plid = $touid;
- }
- if($page) {
- $pmnum = $_ENV['pm']->getpmnumbyplid($this->user['uid'], $plid);
- $start = $this->page_get_start($page, $pagesize, $pmnum);
- $ppp = $pagesize;
- } else {
- $pmnum = 0;
- $start = 0;
- $ppp = 0;
- }
- if($pmid) {
- $pms = $_ENV['pm']->getpmbypmid($this->user['uid'], $pmid);
- } else {
- $pms = $_ENV['pm']->getpmbyplid($this->user['uid'], $plid, $starttime, $endtime, $start, $ppp, $type);
- }
- require_once UC_ROOT.'lib/uccode.class.php';
- $this->uccode = new uccode();
- if($pms) {
- foreach($pms as $key => $pm) {
- $pms[$key]['message'] = $this->uccode->complie($pms[$key]['message']);
- }
- }
- return $pms;
- }
- function onviewnum() {
- $this->init_input();
- $this->user['uid'] = intval($this->input('uid'));
- $touid = $this->input('touid');
- $isplid = $this->input('isplid');
- if(!$isplid) {
- $plid = $_ENV['pm']->getplidbytouid($this->user['uid'], $touid);
- } else {
- $plid = $touid;
- }
- $pmnum = $_ENV['pm']->getpmnumbyplid($this->user['uid'], $plid);
- return $pmnum;
- }
- function onviewnode() {
- $this->init_input();
- $this->user['uid'] = intval($this->input('uid'));
- $type = $this->input('type');
- $pmid = $this->input('pmid');
- $type = 0;
- $pms = $_ENV['pm']->getpmbypmid($this->user['uid'], $pmid);
- require_once UC_ROOT.'lib/uccode.class.php';
- $this->uccode = new uccode();
- if($pms) {
- foreach($pms as $key => $pm) {
- $pms[$key]['message'] = $this->uccode->complie($pms[$key]['message']);
- }
- }
- $pms = $pms[0];
- return $pms;
- }
- function onchatpmmemberlist() {
- $this->init_input();
- $this->user['uid'] = intval($this->input('uid'));
- $plid = intval($this->input('plid'));
- return $_ENV['pm']->chatpmmemberlist($this->user['uid'], $plid);
- }
- function onkickchatpm() {
- $this->init_input();
- $this->user['uid'] = intval($this->input('uid'));
- $plid = intval($this->input('plid'));
- $touid = intval($this->input('touid'));
- return $_ENV['pm']->kickchatpm($plid, $this->user['uid'], $touid);
- }
- function onappendchatpm() {
- $this->init_input();
- $this->user['uid'] = intval($this->input('uid'));
- $plid = intval($this->input('plid'));
- $touid = intval($this->input('touid'));
- return $_ENV['pm']->appendchatpm($plid, $this->user['uid'], $touid);
- }
- function onblackls_get() {
- $this->init_input();
- $this->user['uid'] = intval($this->input('uid'));
- return $_ENV['pm']->get_blackls($this->user['uid']);
- }
- function onblackls_set() {
- $this->init_input();
- $this->user['uid'] = intval($this->input('uid'));
- $blackls = $this->input('blackls');
- return $_ENV['pm']->set_blackls($this->user['uid'], $blackls);
- }
- function onblackls_add() {
- $this->init_input();
- $this->user['uid'] = intval($this->input('uid'));
- $username = $this->input('username');
- return $_ENV['pm']->update_blackls($this->user['uid'], $username, 1);
- }
- function onblackls_delete($arr) {
- $this->init_input();
- $this->user['uid'] = intval($this->input('uid'));
- $username = $this->input('username');
- return $_ENV['pm']->update_blackls($this->user['uid'], $username, 2);
- }
- }
- ?>
|