private function _getPMMsgList($uid, $fromUid, $startTime = 0, $stopTime = 0, $cacheCount = 0, $pmLimit = 10, $isFilter = false) { $msgList = array(); $hasPrev = false; $plid = 0; loaducenter(); $tempMsgList = array(); if ($stopTime == 0) { // 获取新的消息 if ($startTime == 0) { // 获取新的消息 $count = (int) uc_pm_view_num($uid, $fromUid, 0); $tempMsgList = (array) uc_pm_view($uid, 0, $fromUid, 5, 1, $pmLimit, 0, 0); $count > count($tempMsgList) && ($hasPrev = true); } else { $tempMsgList = (array) uc_pm_view($uid, 0, $fromUid, 5, 1, 50, 0, 0); $lastIndex = count($tempMsgList) - 1; if ($lastIndex >= 0) { $offset = 0; for ($i = $lastIndex; $i >= 0; $i--) { if ($tempMsgList[$i]['dateline'] <= $startTime) { $offset = $i; $offset++; break; } } $tempMsgList = array_slice($tempMsgList, $offset); } } } else { if ($stopTime) { // 获取历史的消息 $count = (int) uc_pm_view_num($uid, $fromUid, 0); $lastPage = (int) (($count - 1) / $pmLimit) + 1; $page = (int) floor($cacheCount / $pmLimit) + 1; $tempList = (array) uc_pm_view($uid, 0, $fromUid, 5, $page, $pmLimit); foreach ($tempList as $pm) { if ($pm['dateline'] < $stopTime) { $tempMsgList[] = $pm; } } $page < $lastPage && ($hasPrev = true); } } foreach ($tempMsgList as $msg) { $msgInfo = array(); $plid = $msg['plid']; if (!$isFilter || $msg['authorid'] != $uid) { $tempMsg = $this->_transMessage($msg['message']); $msgInfo['sender'] = (int) $msg['authorid']; $msgInfo['mid'] = (int) $msg['pmid']; $msgInfo['content'] = (string) $tempMsg['content']; $msgInfo['type'] = $tempMsg['type']; $msgInfo['time'] = $msg['dateline'] . '000'; $msgList[] = $msgInfo; } } return array('list' => $msgList, 'hasPrev' => $hasPrev, 'plid' => $plid); }
$page = ceil($count / $perpage); } $list = uc_pm_view($_G['uid'], 0, $touid, 5, ceil($count / $perpage) - $page + 1, $perpage, 0, 0); $multi = pmmulti($count, $perpage, $page, "home.php?mod=space&do=pm&subop=view&touid={$touid}"); } else { showmessage('parameters_error'); } } else { if (defined('IN_MOBILE')) { $perpage = 10; } else { $perpage = 50; } $perpage = mob_perpage($perpage); if (!$daterange) { $count = uc_pm_view_num($_G['uid'], $plid, 1); if (!$page) { $page = ceil($count / $perpage); } $list = uc_pm_view($_G['uid'], 0, $plid, 5, ceil($count / $perpage) - $page + 1, $perpage, $type, 1); } else { $list = uc_pm_view($_G['uid'], 0, $plid, 5, ceil($count / $perpage) - $page + 1, $perpage, $type, 1); $chatpmmember = uc_pm_chatpmmemberlist($_G['uid'], $plid); if (!empty($chatpmmember)) { $authorid = $founderuid = $chatpmmember['author']; $query = DB::query("SELECT m.uid, m.username, mfh.recentnote FROM " . DB::table('common_member') . " m LEFT JOIN " . DB::table('common_member_field_home') . " mfh ON m.uid=mfh.uid WHERE m.uid IN (" . dimplode($chatpmmember['member']) . ")"); while ($member = DB::fetch($query)) { $chatpmmemberlist[$member['uid']] = $member; } $query = DB::query("SELECT * FROM " . DB::table('common_session') . " WHERE uid IN (" . dimplode($chatpmmember['member']) . ")"); while ($value = DB::fetch($query)) {